更改时间。时间时区无需重新分析

时间:2017-05-15 16:23:33

标签: parsing go time timezone

我正在处理使用错误时区解析的time.Time对象。它们内部具有UTC tz,但原始数据来自遗留的MySQL数据库,该数据库内部存储与欧洲/巴黎时区的日期时间。

我想更改时间的内部时区而不重新分析它。我已经尝试了time.In()函数,但它没有解决我的用例,因为它为另一个时区返回相同的时间。

我的最终解决方案是使用https://golang.org/pkg/time/#ParseInLocation从具有正确位置的原始值重新创建日期。但是,如果可以避免这种情况会更好。

有什么想法吗?

感谢。

1 个答案:

答案 0 :(得分:0)

你可以Add给他们一个固定的事吗?

t,_ := time.Parse(...)
t = t.Add(-4 * time.Hour) // or whatever offset makes it work

// t is now correct utc time
// In should work less badly:
localTime := t.In(myRealLocation)