Time 开始时间。格式错误

Time 开始时间。格式错误,time,go,format,Time,Go,Format,我想根据修改日期重命名一些文件 当我使用time.Format方法获取正确的字符串时,基本上是在这种格式下YYYY-MM-DD\u HH-MM-SS,一天有一个尾随0 我做错什么了吗 package main import ( "time" "fmt" ) func main() { loc, _ := time.LoadLocation("Europe/Berlin") const layout = "2006-01-20_15-04-05"

我想根据修改日期重命名一些文件

当我使用
time.Format
方法获取正确的字符串时,基本上是在这种格式下
YYYY-MM-DD\u HH-MM-SS
,一天有一个尾随
0

我做错什么了吗

package main

import (
    "time"
    "fmt"
)

func main() {

    loc, _ := time.LoadLocation("Europe/Berlin")

    const layout = "2006-01-20_15-04-05"

    t := time.Date(2013, 07, 23, 21, 32, 39, 0, loc)
    fmt.Println(t)
    fmt.Println(t.Format(layout))
}

输出:

2013-07-23 21:32:39 +0200 CEST 2013-07-230_21-32-39 2013-07-23 21:32:39+0200欧洲标准时间
2013-07-230_21-32-39您的
布局未使用参考日期:将其更改为
“2006-01-02_15-04-05”


使用
“2006-01-20_15-04-05”
时,格式化程序会看到
2
,并将其用于当天,然后保留额外的
0
,因为它与参考日期的任何部分都不匹配。

是月份还是日期?我可以在白天看到尾随的
0
。或者您希望您的月份是
7
,而不是
07
?顺便说一句,在Go程序中使用前导零作为数字文字的一部分时要小心。我在你的程序中看到文字
07
,本能地退缩了。如果你不小心,你可能会不小心使用八进制。在上面的例子中,从技术上讲这不是一个问题,但一般来说,只有当您真正指的是八进制时才使用八进制整数文字。@Ainar-G哦,对不起,我当然指的是当天尾随的0。@dyoo谢谢您的提示。