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

如何在go中添加时区以秒为单位获取时间,go,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)

我在利用时间。时间在流逝。为了以秒为单位获取时间(自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)


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

Unix时间戳与时区无关-。它应该是相同的秒数,也应该是相同的秒数。如果在time.Now()处用时区进行偏移,则1970年1月1日的unix开始时间也将偏移相同的小时数。Unixtime不会在不同的位置发生变化,这正是它在systemsSecond()中使用的原因。methon返回t指定的分钟内的第二个偏移量,在[0,59]范围内,但我的目的是获取自1月1日以来经过的秒数,也是今年的1月1日还是1970年的1月1日?因为时区是动态的。在这种情况下,我只知道像“亚洲/达卡”这样的时区字符串。但是不知道6小时这样的值。如果它是亚洲/达卡,它应该是+6小时,在
time.FixedZone(“亚洲/达卡,6*60*60)
“亚洲/达卡”是名称,如果你需要一些其他时区的信息,那么你需要提供不同的偏移值。“亚洲/达卡”是6*60*60。如果此时区是动态的,请以更合理的方式使用名称,并根据需要更改偏移值
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)