Golang中日期和时间格式不正确的问题
Golang中日期和时间格式不正确的问题 不确定我遗漏了什么。 操作很简单:将当前时间格式化为特定格式。 希望使用的格式是:
yyyy.MM.dd’T’HH:mm:ss.SSS
fmt.Println(time.Now().Format("2018.07.08T12:00:00.123"))
输出结果为
10118.07.08T1110:00:00.111011
更多关于Golang中日期和时间格式不正确的问题的实战教程也可以访问 https://www.itying.com/category-94-b0.html
谢谢 @skillian。我不明白的是,除了末尾的毫秒部分,你的格式和我的格式有什么不同?
不过我发现 Go Playground 在处理时间方面存在问题。
更多关于Golang中日期和时间格式不正确的问题的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html
我不确定该怎么做,或者这是否能做到。
哦!这真是学到不少。
另一个问题是,如何在格式化器中限制毫秒数仅为2-3位数字?有什么办法吗?
传入 Format 的字符串必须是一个特定的值:2006-01-02 03:04:05 PM (UTC-7)。请注意其中包含了1到7的所有数字。在Go中定义格式的方法是,以你希望实际时间值被格式化成的格式,写出那个特定的日期。在你的情况下,我认为你希望它是:"2006.01.02T15:04:05"。
func main() {
fmt.Println("hello world")
}
区别在于你使用了日期 2018-07-08,但它必须是特定的日期 2006-01-02。这些是 Go 用来分别确定它应该格式化年、月和日位置的魔数。
func main() {
fmt.Println("hello world")
}
在Go语言中,日期时间格式化必须使用特定的参考时间:Mon Jan 2 15:04:05 MST 2006(记忆口诀:2006-1-2 15:04:05)。
对于你想要的格式 yyyy.MM.dd’T’HH:mm:ss.SSS,正确的格式化字符串应该是:
package main
import (
"fmt"
"time"
)
func main() {
// 正确的格式化方式
fmt.Println(time.Now().Format("2006.01.02T15:04:05.000"))
// 或者使用常量定义
const layout = "2006.01.02T15:04:05.000"
fmt.Println(time.Now().Format(layout))
// 示例输出:2023.12.25T14:30:45.123
}
关键点:
2006对应年份(yyyy)01对应月份(MM)02对应日期(dd)15对应24小时制小时(HH)04对应分钟(mm)05对应秒(ss)000对应毫秒(SSS),使用三个0表示三位毫秒
你之前使用 "2018.07.08T12:00:00.123" 作为格式化字符串,Go会将其中的数字解释为时间组件的位置,导致输出混乱。


