我试图解析这个时间字符串“2015年4月29日21:58:06 PDT”。这样做的正确方法是什么?
第一种方法:
zone = Time.zone
Time.zone = "Pacific Time (US & Canada)"
payed_at = Time.parse params[:payment_date]
payed_at.in_time_zone(zone)
结果:
Thu, 30 Apr 2015 10:21:30 CEST +02:00
第二个猜测:
payed_at = DateTime.parse date
结果:
Thu, 30 Apr 2015 21:58:29 +0000
正确的结果将是
Thu, 30. April 2015, 06:58 Uhr
环境:
ruby '2.1.5'
gem 'rails', '~> 3.2.15'
答案 0 :(得分:0)
使用 strptime 方法解析
例如:DateTime.strptime('December 09, 2011', '%B %d, %Y')
http://ruby-doc.org/stdlib-1.9.3/libdoc/date/rdoc/DateTime.html#method-c-_strptime
答案 1 :(得分:0)
由于您在代码中指定了rails
,因此这是一个ActiveSupport
解决方案:
tz = ActiveSupport::TimeZone['US/Pacific']
tz.parse("21:58:06 Apr 29, 2015 PDT").localtime
#⇒ 2015-05-01 06:58:29 +0200