我遇到了一个问题。PostgreSQL数据库以“不带时区的时间戳”格式存储日期和时间。如果您从数据库中获取日期和时间,并尝试将其转换为秒,则会增加4个额外的小时示例:
fmt.Println(menu.OpeningRecordAt, "|", time.Unix(menu.OpeningRecordAt.Unix(), 0))
// 2023-05-21 00:00:00 +0000 UTC | 2023-05-21 04:00:00 +0400 +04
有什么方法可以解决这个问题或更正确地转换日期和时间秒?
我试着将postgres的数据类型改为timestamp with time zone,但转换也增加了额外的时间
2条答案
按热度按时间uinbv5nw1#
文件:
Package time
Unix返回自1970年1月1日UTC以来与给定Unix时间、sec秒和nsec纳秒相对应的本地时间。
正如预期的那样,您获得了本地时间:
2023-05-21 04:00:00 +0400
。您需要UTC时间。美国东部夏令时(EDT):
6pp0gazn2#
我能够用这种方法解决这个问题
有更好的选择吗?