将日期时间用于DST检查


Time.now
2017-03-14 12:07:59 -0600
Time.now.dst?
true
tt = Time.parse(DateTime.strptime("03/14/2017 12:07AM", "%m/%d/%Y %I:%M%p").to_datetime.to_s)
2017-03-14 00:07:00 +0000
tt.class
Time
tt.dst?
false

这也失败

DateTime.strptime(value, "%m/%d/%Y %I:%M%p").to_datetime.strftime("%Y-%m-%d %H:%M:%S").to_datetime.change(offset: '-0500').to_time.dst?

为什么DateTime转换为时间失败DST?

我认为这是由于转换时间缺少时区(示例-0600)。尝试以下内容,

 tt = Time.parse(DateTime.strptime("03/14/2017 12:07AM -06:00", "%m/%d/%Y %I:%M%p %z").to_datetime.to_s)

最新更新