0

我在将日期转换为 UTC 然后再转换回用户时区时遇到一些问题。

由于我已经有很多用户,我正在使用时区 gem https://github.com/panthomakos/timezone获取他们的时区,我得到如下结果:“太平洋时间(美国和加拿大)”。

当我向他们询问特定的日期/时间并且我想向其添加时区(“太平洋时间(美国和加拿大)”)并将其以 UTC 格式保存在数据库中时,就会出现问题。

我正在使用 jQuery UI Datepicker 获取日期,并以这种格式获取它:“2013 年 10 月 13 日,星期日”和这种格式“12:00 am”的时间。

在此之后,我使用 DateTime.strptime("user input", "%A, %b %e, %Y %I:%M %P") 将其转换为日期时间。

我的问题是如何将存储在数据库中的用户时区设置为该日期的字符串“太平洋时间(美国和加拿大)”?

4

1 回答 1

0

您应该能够格式化时区并将其添加到用户输入字符串中,然后解析它,如下所示:

user_input += ActiveSupport::TimeZone.new("Pacific Time (US & Canada)").formatted_offset
DateTime.strptime(user_input, "%A, %b %e, %Y %I:%M %P%:z")
于 2013-10-13T16:55:03.083 回答