英文:
Time format weird behavior
问题
这是一个更大代码的一部分。我有点困惑,如果我在下面的格式中使用其他数字,结果会出错。
所以,如果我尝试使用:
fmt.Println(time.Now().Format("2006-01-02 12:04:05-04:00"))
结果是错误的。即使格式相同,只是数字不同。
package main
import (
"fmt"
"time"
)
func main() {
fmt.Println(time.Now().Format("2006-01-02 15:04:05-07:00"))
}
所以我的问题是为什么会这样。格式中的数字没有意义,它们只是格式的表示。
英文:
This is a part of a bigger code. I am little confused that if I use any other digit in the below format it results in wrong values.
so instead of
fmt.Println(time.Now().Format("2006-01-02 15:04:05-07:00"))
if I try to use
fmt.Println(time.Now().Format("2006-01-02 12:04:05-04:00"))
Result is wrong. Even when it is same format, just digit change
package main
import (
"fmt"
"time"
)
func main() {
fmt.Println(time.Now().Format("2006-01-02 15:04:05-07:00"))
}
So my question is why is it so. Digits inside format have no meaning. They are just for representation of the format.
答案1
得分: 7
从 https://golang.org/pkg/time/:
func (Time) Format
func (t Time) Format(layout string) string
根据layout定义的格式,返回时间值的文本表示形式。layout通过展示如何显示被定义为参考时间的时间值
Mon Jan 2 15:04:05 -0700 MST 2006
来定义格式;
如果它是该值,它将被显示;
所以你必须使用参考时间。你不应该将它更改为其他时间。
英文:
From https://golang.org/pkg/time/:
> func (Time) Format
>
> func (t Time) Format(layout string) string
>
> Format returns a textual representation of the time value formatted
> according to layout, which defines the format by showing how the
> reference time, defined to be
>
> Mon Jan 2 15:04:05 -0700 MST 2006
>
> would be displayed if it were the value;
So you must use the reference time. You should not change it to another time.
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论