在 Go 中将时间偏移转换为位置/时区
使用时区和偏移时,通常会遇到需要以下情况的情况:将表示为字符串的原始时间偏移转换为 Go 中可用的位置对象。使用 time 包提供的方法可以轻松实现这一点。
假设您获得了任意时间偏移,例如“1100”。要创建表示此偏移量的 time.Location 对象,只需使用 FixZone 函数,如下所示:
loc := time.FixedZone("UTC+11", +11*60*60)
此函数创建一个具有指定名称和以秒为单位的偏移量的位置。
要关联这个新创建位置的时间,使用 In 方法:
t = t.In(loc)
此操作修改时间 t 以反映指定位置并更新其偏移量
以下示例演示了不同上下文中时间的转换和后续输出:
package main import ( "fmt" "time" ) func main() { loc := time.FixedZone("UTC+11", +11*60*60) t := time.Now() // Output the original time and location fmt.Println(t) // Output: 2023-09-13 18:37:08.729331723 +0000 UTC fmt.Println(t.Location()) // Output: UTC // Apply the new location to the time t = t.In(loc) // Output the modified time and location fmt.Println(t) // Output: 2023-09-14 05:37:08.729331723 +1100 UTC+11 fmt.Println(t.Location()) // Output: UTC+11 // Output the UTC equivalent of the modified time fmt.Println(t.UTC()) // Output: 2023-09-13 18:37:08.729331723 +0000 UTC fmt.Println(t.Location()) // Output: UTC+11 }
此代码展示了如何将时间偏移转换为位置对象并应用它是为了获得不同时区的准确表示的时间。
以上是如何在 Go 中将时间偏移字符串转换为 Time.Location 对象?的详细内容。更多信息请关注PHP中文网其他相关文章!