4

クラスは冗長であるように思われ、DateTimeクラスのRails拡張機能のドキュメントでこのビットを読んだ後、潜在的に危険であるようにも見えます。

DateTimesはDSTルールを認識しないため、ローカルゾーンでオフセットを使用してDateTimeを作成する場合は、一貫した非DSTオフセットを使用してください

RailsのドキュメントにもこれがありますDateTime#to_time

自分自身をRubyTimeオブジェクトに変換しようとします。RubyTimeクラスの範囲外の場合はselfを返します。selfに0以外のオフセットがある場合、Timeにマップするクリーンな方法がないため、selfは変更されずに返されます。

最後の部分はDateTimeDSTを認識していないためだと思います。

私にはこれがあるようです:

  • このDateクラスは、時刻のない単純な日付を表します。
  • クラスは特定のTime時点を表し、暗黙的に日付が含まれます。
  • クラスはDateTimeクラスと同じですが、TimeDSTを理解せず、通常Timeのクラスに変換できない場合があります。

それでDateTime、コードベースから追​​放されるべきですか、それとも私が欠けている有用な目的を果たしますか?

4

1 に答える 1

3

DateTimeTimeRubies <1.9.2の32ビットマシンよりも有利でした-Y2K38問題Timeの犠牲者であり、32ビット範囲に制限されていました。この問題は、64ビットマシンおよび/または最近のRubyバージョンのいずれかで解決されています。たとえば、1.8の互換性が必須である場合や、APIのメソッドを使用することに依存している場合は、それを使用する必要があります。DateTimeTime

于 2012-06-09T04:03:23.403 に答える