去time.Format错误的月份

时间:2014-09-25 15:26:49

标签: time go format

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

当我使用time.Format方法获取正确的字符串时,基本上采用此格式YYYY-MM-DD_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))
}

Click to play

输出:

2013-07-23 21:32:39 +0200 CEST
2013-07-230_21-32-39

1 个答案:

答案 0 :(得分:6)

您的layout未使用参考日期:将其更改为"2006-01-02_15-04-05"

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