String.to_datetime不使用当前时区(当没有给出时)

我注意到,当字符串中没有给出时区时,Rails的String.to_timezone方法不使用当前时区。

$ "2013-01-14 14:38".to_datetime => Mon, 14 Jan 2013 14:38:00 +0000 $ DateTime.now => Mon, 14 Jan 2013 14:39:50 +0100 

有没有办法告诉方法使用当前时区?

谢谢。

试试这个:

 Time.zone.parse('2013-01-14 14:38').to_datetime 

这将使用当前时区来解析字符串到目前为止。

您可以使用DateTime对象上的#in_time_zone方法:

 "2013-01-14 14:38".to_datetime.in_time_zone "2013-01-14 14:38".to_datetime.in_time_zone("Prague") 

使用in_time_zone

 "2013-01-14 16:06".in_time_zone => Mon, 14 Jan 2013 16:06:00 CET +01:00