【发布时间】:2021-07-23 05:25:15
【问题描述】:
我将时间作为"02:00:00" 存储在我的数据库中。但我想将这个时间显示为我的本地时区。
我尝试这样做以将时间从 UTC 转换为 Asia/Jakarta 时间:
package main
import (
"fmt"
"time"
)
func main() {
layout := "15:04:05"
inTimeStr := "02:00:00"
loc, _ := time.LoadLocation("Asia/Jakarta")
inTime, _ := time.Parse(layout, inTimeStr)
fmt.Println(inTime)
fmt.Println(inTime.In(loc).Format(layout))
}
我原以为这是09:00:00,但令人惊讶的是它是09:07:12。
我尝试将时间的年份更改为不同的值,但得到了不同的结果。对我来说,如果我将年份设置为 1970 年或更多,它会给出正确的结果。
【问题讨论】:
-
这取决于日期,因为时区在历史上发生了变化。 timezonedb.com/time-zones/Asia/Jakarta 展示了该地区的文明时代是如何演变的。在 1923 年之前,它比世界标准时间晚 7 小时 7.2 分钟,大概是因为使用了太阳时。