在我的 MySQL 数据库中,updated_at 字段存储为 UTC。上周在美国东部时间晚上 7 点输入了一条记录,它的 updated_at 值为“2012-08-01 23:00:00”。我正在尝试将 Web 客户端的本地时间转换为可以与数据库中的 updated_at 字段进行比较的 UTC。
例如,我想将 '08/01/2012 07:00 pm' 转换为 '2012-08-01 23:00:00' (考虑到我在 EDT)但我错过了时区转换方面。'7:00 pm' 是当地时间,可以来自任何时区。我当前的代码:
ruby-1.9.2-head :015 > from_date = DateTime.strptime('08/01/2012 07:00 pm', '%m/%d/%Y %H:%M %p')
=> Wed, 01 Aug 2012 19:00:00 +0000
ruby-1.9.2-head :016 > from_date = Time.zone.parse(from_date.to_s).utc
=> 2012-08-01 19:00:00 UTC
有什么想法吗?
编辑:另外,我可以在我的 strptime 调用中使用“%Z”,但这是假设我在值中有时区,而我目前没有。我想我可以使用 Javascript 将其与日期/时间值一起发送。