[解決済み】RubyのDateTimeとTimeの違いについて
2022-04-04 15:22:24
質問
とはどう違うのですか?
DateTime
と
Time
と、どちらを選ぶべきかの判断材料は何でしょうか?
どのように解決するのですか?
新しいバージョンのRuby(2.0以上)では、この2つのクラスの間に大きな違いはありません。歴史的な理由でどちらかを使うライブラリもありますが、新しいコードでは必ずしも気にする必要はありません。一貫性を保つためにどちらかを選択することがおそらく最善であり、ライブラリが期待するものと一致するようにしてください。例えば、ActiveRecordはDateTimeを好みます。
Ruby 1.9 より前のバージョンや多くのシステムでは、時刻は 1970 年 1 月 1 日 (UTC) からの秒数を表す 32 ビット符号付き値として表現されます。
time_t
の値であり、境界が設定されています。
Time.at(0x7FFFFFFF)
# => Mon Jan 18 22:14:07 -0500 2038
Time.at(-0x7FFFFFFF)
# => Fri Dec 13 15:45:53 -0500 1901
Rubyの新しいバージョンでは、より大きな値でもエラーを出さずに処理できるようになっています。
DateTimeはカレンダー方式で、年、月、日、時、分、秒が個別に保存されます。これはRuby on Railsの構造体で、SQL標準のDATETIMEフィールドのラッパーとして機能します。これらは任意の日付を格納し、式の範囲が一般に非常に大きいため、ほぼすべての時点を表すことができます。
DateTime.new
# => Mon, 01 Jan -4712 00:00:00 +0000
だから、DateTimeがAristotleのブログ記事を扱えるのは心強いです。
どちらかを選ぶ場合、その違いは今ややや主観的なものとなっています。歴史的にはDateTimeの方がカレンダー方式で操作するための優れたオプションを提供してきましたが、少なくともRails環境内では、これらのメソッドの多くがTimeにも移植されています。
関連
-
[解決済み] 文字列の文字をアルファベット順に並べるには?
-
[解決済み] Pythonで現在時刻を取得する方法
-
[解決済み] MySQLでdatetimeとtimestampのどちらのデータ型を使用すべきですか?
-
[解決済み] time(1) の出力における 'real', 'user' および 'sys' はどのような意味ですか?
-
[解決済み] C#で相対時間を計算する
-
[解決済み] JavaScriptでUnixのタイムスタンプを時刻に変換する
-
[解決済み] 2つの日付範囲が重なっているかどうかを判定する
-
[解決済み] Rubyのincludeとrequireの違いは何ですか?
-
[解決済み] Ruby on Railsで、DateTime、Timestamp、Time、Dateの違いは何ですか?
-
[解決済み】文字列をdatetimeに変換する
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】rubyの1e18という数字は何を意味するのか?
-
[解決済み] Ruby、スタックレベルが深すぎる (SystemStackError)
-
[解決済み] Ruby の .reject! と .delete_if の比較
-
[解決済み] 配列に何かを追加しようとしたときに、nil から整数への暗黙の変換が行われない。
-
[解決済み] Rubyで中央値を計算する
-
[解決済み] gemのインストール中に "permission denied "エラーが発生するのはなぜですか?
-
[解決済み] Rubyで2次元配列の作成と反復処理
-
[解決済み] Rubyにバイナリ検索は組み込まれていますか?
-
[解決済み] Ruby 2.0.0p0 IRB警告。"DLは非推奨です。Fiddleをお使いください。"
-
[解決済み] Rubyで日付と時刻の変換を行う。