在 Go 中将时间偏移转换为位置/时区
当处理包含时间偏移但缺少位置信息的时间数据时,它有必要创建一个可用的 time.Location 对象来准确记录偏移量并输出相对于用户的时间location.
在Go中,可以使用FixedZone函数来指定相对于UTC具有固定偏移量的位置。例如,要创建偏移量为 11 的位置,请使用以下代码:
loc := time.FixedZone("UTC+11", +11*60*60)
定义位置后,将其设置为所需的时间对象:
t = t.In(loc)
This会将时间对象调整到指定的位置及其时间偏移量。
运行以下代码示例了这一点过程:
package main import ( "fmt" "time" ) func main() { loc := time.FixedZone("UTC+11", +11*60*60) t := time.Now() fmt.Println(t) fmt.Println(t.Location()) t = t.In(loc) fmt.Println(t) fmt.Println(t.Location()) fmt.Println(t.UTC()) fmt.Println(t.Location()) }
输出:
2009-11-10 23:00:00 +0000 UTC m=+0.000000001 UTC 2009-11-11 10:00:00 +1100 UTC+11 UTC+11 2009-11-10 23:00:00 +0000 UTC UTC+11
如图所示,原始时间(UTC 格式)被调整到指定的偏移位置。输出还显示 time.UTC() 方法返回 UTC 中的原始时间,而 time.Location() 方法返回调整后的位置信息。
以上是如何在 Go 中将时间偏移转换为时区和位置?的详细内容。更多信息请关注PHP中文网其他相关文章!