Wrong date with ruby Date.today and DateTime.now

試著忘記壹切 提交于 2019-12-04 04:04:52

I stumbled upon similar problem and got 3 different solutions, which i tried 2 of and both worked. Read more about it from here:

http://www.ruby-forum.com/topic/210647

Jarmo

The returned string seems to be very broken: i) the year is 2126, ii) there's two hyphens between the year and the month, and ii) the day is 10618.

What platform are you on? What timezone are you on (the example implies you're in GMT)?

I'm on WinXP and Ruby 1.8.6-p111 gives the same result in all three cases.

Edit: I did some digging in the Ruby source code (Date and DateTime are defined in lib/date.rb).

It turns out that Date.today calls internally Time.now.__send__(:to_date)..., so maybe you should try calling Time.now.__send__(:to_date).to_s in irb and compare the output to Time.now.to_s in order to narrow down the problem.

Date.today also calls .new_start(...) on the created Date instance so maybe that's messing up the date in your case.

Im not sure if you are running things locally, or on the server, but I think ruby might be taking the server date, which may be in a different time zone than you are, and thus, appear differently.

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!