go - 如何在go中添加时区以秒为单位获取时间

标签 go

我正在使用 time.Time in go。以秒为单位获取时间(自 1970 年 1 月 1 日以来经过的秒数)我正在使用

now := Time.now()
loc, err := time.LoadLocation(country.Timezone) // time zone in Asia/Dhaka
now = now.In(loc)

然后,

seconds := now.Unix()

但秒数给出的秒数不加时区秒数。它实际上给出了 UTC 的秒数。我的问题是,如何在增加 6 小时后获得秒数(亚洲/达卡时区为 UTC+6)?

最佳答案

如果你想要当前时钟时间的第二部分只使用下面的代码:

loc := time.FixedZone("some_common_name", 6*60*60)
ts := time.Now().In(loc).Second()
fmt.Println(ts)

如果你想要从当年开始的秒数(比如 01.01.1970)

loc := time.FixedZone("some_common_name", 6*60*60)
tp := time.Date(1970, 1, 1, 0, 0, 0, 0, loc)
ts := time.Now().Sub(tp).Seconds()
fmt.Printf("%v", ts)

如果您需要不同的时区信息,请更改 time.FixedZone() 函数的偏移值。如,如果您想要 GMT +5,则使用 5*60*60 作为偏移值

关于go - 如何在go中添加时区以秒为单位获取时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57941547/

相关文章:

templates - 在 Go 模板中请求上下文

go - Thrift Compiler(0.9.3) 生成 Thrift 包中未定义的函数 thrift.PrependError

go - 如何对嵌入结构的 http 处理程序进行单元测试?

testing - 集成测试,通配符忽略标签

google-app-engine - 如何记录每个请求/上下文 - Golang

go - 如何在 GCP 云功能中加载本地 Assets ?

go - channel 值的互斥写入锁定

go - Neo4j 在谷歌云 pubsub 订阅中写入事务 panic

file - 戈兰 : Getting "fatal error: all goroutines are asleep - deadlock" on waitGroup. 等待()

linux - 无法使用 pulseaudio 作为 systemd 单元捕获麦克风输入