时间格式转换成strftime默认格式
time format converted to strftime default format
在 Common Log Format 的维基百科条目中,strftime 格式为:
[10/Oct/2000:13:55:36 -0700] is the date, time, and time zone that the
request was received, by default in strftime format %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)。
对于 Format
布局,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
此外,对于时区,请使用 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"))
}
游乐场:https://play.golang.org/p/tBLw5oJSE5t
输出:
2000-10-10 13:55:36 -0700 PDT
10/Oct/2000:13:55:36 -0700
在 Common Log Format 的维基百科条目中,strftime 格式为:
[10/Oct/2000:13:55:36 -0700] is the date, time, and time zone that the request was received, by default in strftime format %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)。
对于 Format
布局,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
此外,对于时区,请使用 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"))
}
游乐场:https://play.golang.org/p/tBLw5oJSE5t
输出:
2000-10-10 13:55:36 -0700 PDT
10/Oct/2000:13:55:36 -0700