Ruby DateTime.Parse到本地时间

drh*_*lau 5 ruby datetime

我有一个日期字符串20101129220021,所以我会用

require 'date'
d = DateTime.parse('20101129220021')
Run Code Online (Sandbox Code Playgroud)

这部分工作正常,我得到一个日期,它是UTC.

我的问题是,我如何将其转换为当地时间?我尝试了很多方法,比如使用时间部分来提取d.to_time和操作结果,但它没有用.据我所知,DateTime对象是不可变的.我能帮忙吗?

Dou*_*rer 3

您可以根据时区添加有理分数来获取当地时间。

require 'date'

# Make this whatever your zone is. Using UTC +0300 here.
ZONE = 3

d = DateTime.parse('20101129220021') + Rational(ZONE,24)

d.to_s # => "2010-11-30T01:00:21+00:00"
Run Code Online (Sandbox Code Playgroud)