質問

私はRVMとルビー-1.8.6-P383をインストールしました。システムルビー1.9.1_p378-1

ルビー1.8を使用しているときTime.nowが正確であるのに対し、私は.. Date.todayとDateTime.nowから間違った日付を取得しています:

irb(main):002:0> DateTime.now.to_s
=> "2126--1-10618T11:23:43+00:00"
irb(main):004:0> Date.today.to_s
=> "2126--1-10618"
irb(main):005:0> Time.now
=> Thu Jan 28 11:55:27 +0000 2010

私はルビー1.9に切り替える場合は、すべてがうまくます:

irb(main):003:0> DateTime.now.to_s
=> "2010-01-28T11:58:51+00:00"
irb(main):004:0> Date.today.to_s
=> "2010-01-28"
irb(main):005:0> Time.now
=> 2010-01-28 11:59:05 +0000

ルビー1.8で正しく動作するには日時を取得する方法上の任意のアドバイスが最もいただければ幸いです!

役に立ちましたか?

解決

私は同様の問題につまずいたと私は2を試してみましたが、両方働いた3種類のソリューションを、得ました。ここからそれについてもっと読むます:

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

Jarmo

他のヒント

返される文字列は非常に壊れているようです:ⅰ)年には、ⅱ)年と月の間に2つのハイフンがあります、そしてii)その日は10618で、2126です。

どのようなプラットフォームあなたは上にありますか?どのような時間帯あなたがオンになっている(例えば、あなたがGMTにいることを意味する)?

私はWinXPの上だとRuby 1.8.6-P111は、3つのすべてのケースで同じ結果が得られる。

編集:私はRubyのソースコードにいくつかの掘削をしました(DateDateTimelib/date.rbで定義されています)。

これはDate.todayはので、多分あなたはTime.now.__send__(:to_date)...Time.now.__send__(:to_date).to_sを呼び出して試してみて、問題を絞り込むためにirbへの出力を比較する必要があり、Time.now.to_s内部で呼び出すことが判明します。

Date.todayも作成.new_start(...)インスタンス上Dateを呼び出すので、多分のは、あなたのケースで日付をめちゃくちゃにすることをます。

あなたは、またはサーバー上でローカルに物事を実行しているが、私はルビーはあなたがより異なるタイムゾーンになり、ひいてはてサーバの日付を、取るかもしれないと思う場合は、イムがないことを確認、異なって表示されます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top