繁体   English   中英

DateTime.now还是Time.now?

[英]DateTime.now or Time.now?

我应该在Rails应用程序中使用哪两个:

DateTime.now or Time.now

在申请中使用两者有什么危害吗?

在上面( now )的例子中,两者之间是否会有任何差异? (在我目前的系统中,他们都显示相同的时间)

使用(Date)Time.current而不是(Date)Time.now

Rails扩展了TimeDateTime对象,并包含current属性,用于检索Rails环境设置的时间(默认= UTC),而不是服务器时间(可能是任何东西)。

这很关键 - 除了在用户输入或显示的时区之间进行转换时,您应始终使用UTC时间,但许多生产系统默认不是 UTC。 (例如Heroku设置为PST(GMT -8))

请看这里的文章

参考Time.now (不是DateTime.now ):

创建的对象将使用系统时钟上可用的分辨率创建,因此可能包括小数秒。

a = Time.new      #=> Wed Apr 09 08:56:03 CDT 2003
b = Time.new      #=> Wed Apr 09 08:56:03 CDT 2003
a == b            #=> false
"%.6f" % a.to_f   #=> "1049896563.230740"
"%.6f" % b.to_f   #=> "1049896563.231466"

如果你想在应用程序的时区获得时间,你需要调用Time.zone.now ,这就是我通常使用的。

Time.nowDateTime.now都将返回系统时间的时间,通常设置为UTC。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM