Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Go 时间格式转换为strftime默认格式_Go_Strftime - Fatal编程技术网

Go 时间格式转换为strftime默认格式

Go 时间格式转换为strftime默认格式,go,strftime,Go,Strftime,在的wikipedia条目中,strftime格式如下所示: [10/Oct/2000:13:55:36-0700]是 已收到请求,默认情况下为strftime格式%d/%b/%Y:%H:%M:%S %z 当我尝试使用time.Format函数时: package main import ( "fmt" "time" ) func main() { t, _ := time.Parse(time.UnixDate, "Tue Oct 10 13:55:36 PDT 2

在的wikipedia条目中,strftime格式如下所示:

[10/Oct/2000:13:55:36-0700]是 已收到请求,默认情况下为strftime格式%d/%b/%Y:%H:%M:%S %z

当我尝试使用time.Format函数时:

package main

import (
    "fmt"
    "time"
)

func main() {
    t, _ := time.Parse(time.UnixDate, "Tue Oct 10 13:55:36 PDT 2000")
    fmt.Println(time.Time(t).Format("01/Feb/2006:15:04:05 -0700"))
}
我得到了输出
[10/Feb/2000:13:55:36+0000]
,而我正期待
[10/Oct/2000:13:55:36-0700]
(根据维基百科)。我的格式有什么问题


我检查那天是星期二,那天的时区是-7小时(PDT)。

对于
格式
布局,
Jan
而不是
Feb
。比如说,

package main

import (
    "fmt"
    "time"
)

func main() {
    t, err := time.Parse(time.UnixDate, "Tue Oct 10 13:55:36 PDT 2000")
    if err != nil {
        fmt.Println(err)
        return
    }
    fmt.Println(time.Time(t).Format("01/Jan/2006:15:04:05 -0700"))
}
输出:

10/Oct/2000:13:55:36 +0000
2000-10-10 13:55:36 -0700 PDT
10/Oct/2000:13:55:36 -0700

另外,对于时区,使用
ParseInLocation

package main

import (
    "fmt"
    "time"
)

func main() {
    loc, err := time.LoadLocation("America/Los_Angeles")
    if err != nil {
        fmt.Println(err)
        return
    }
    t, err := time.ParseInLocation(time.UnixDate, "Tue Oct 10 13:55:36 PDT 2000", loc)
    if err != nil {
        fmt.Println(err)
        return
    }
    fmt.Println(t)
    fmt.Println(time.Time(t).Format("01/Jan/2006:15:04:05 -0700"))
}
游乐场:

输出:

10/Oct/2000:13:55:36 +0000
2000-10-10 13:55:36 -0700 PDT
10/Oct/2000:13:55:36 -0700

对于
格式
布局,
Jan
Feb
。比如说,

package main

import (
    "fmt"
    "time"
)

func main() {
    t, err := time.Parse(time.UnixDate, "Tue Oct 10 13:55:36 PDT 2000")
    if err != nil {
        fmt.Println(err)
        return
    }
    fmt.Println(time.Time(t).Format("01/Jan/2006:15:04:05 -0700"))
}
输出:

10/Oct/2000:13:55:36 +0000
2000-10-10 13:55:36 -0700 PDT
10/Oct/2000:13:55:36 -0700

另外,对于时区,使用
ParseInLocation

package main

import (
    "fmt"
    "time"
)

func main() {
    loc, err := time.LoadLocation("America/Los_Angeles")
    if err != nil {
        fmt.Println(err)
        return
    }
    t, err := time.ParseInLocation(time.UnixDate, "Tue Oct 10 13:55:36 PDT 2000", loc)
    if err != nil {
        fmt.Println(err)
        return
    }
    fmt.Println(t)
    fmt.Println(time.Time(t).Format("01/Jan/2006:15:04:05 -0700"))
}
游乐场:

输出:

10/Oct/2000:13:55:36 +0000
2000-10-10 13:55:36 -0700 PDT
10/Oct/2000:13:55:36 -0700

可能的重复和这里的讨论我认为你关于时区的dup是正确的,但是这个月呢?请注意,月份坚持格式月份字符串。如下所示,使用Jan而不是Feb,但时区仍然可能是的副本,这里的讨论我认为您关于时区的dup是正确的,但是月份如何?请注意,月份坚持格式月份字符串。如下所示,使用Jan而不是Feb,但时区仍然是一个问题