我正在从API导入一个对象,其日期时间如下所示:
"2017-06-28 09:00:00"
此时间位于用户的时区,这在我的应用程序中是已知的。 (即Pacific Time (US & Canada)
)
日期时间以UTC格式datetime
格式存储在我的数据库中。当我们在前端显示日期时,我们会考虑用户的时区(即datetime.in_time_zone(user_time_zone)
)。
如何正确保存数据库中的日期时间?
答案 0 :(得分:0)
您应该可以将应用时区附加到日期时间字符串的末尾。
time = "2017-06-28 09:00:00"
time += Time.zone.name
解析会给你Pacific Time (US & Canada)
的时间。或者使用ActiveSupport
。
time_pacific = DateTime.parse(time)
### ActiveSupport version ###
time_pacific = ActiveSupport::TimeZone.new(Time.zone.name).parse("2017-06-28 09:00:00")
然后,您可以在其上调用#utc
以从原始字符串中获取正确的UTC时间。
time_utc = time_pacific.utc