1. ホーム
  2. ruby

[解決済み] strptimeとstrftimeの見分け方

2022-03-03 06:24:56

質問

とはどう違うのですか? strptimestrftime ? なるほど strptime はメソッドで DateTime クラスと strftimeTime クラスがあります。

  1. とは何が違うのでしょうか? TimeDateTime コアとなるメソッドが異なるということ以外は?の説明では Time クラスについては、Rubyのドキュメントにあるものが便利ですが DateTime は、単に "datetime" と書いてあるだけです。また Date クラスを提供するとしています。 DateDateTime . この意味を理解するのを助けてください。
  2. なるほど strptime と発音したいのですが、これでは意味がありません。何かいいニモニックデバイスはないでしょうか?
  3. はどのようなものですか? strptimestrftime ということですか?
  4. どれが何をするのか、どうやって覚えているのですか?

解決方法は?

との違いは TimeDateTime は、実装に関係するものです。大量の DateTime の機能はRailsの世界から来たもので、任意の日付と時間帯を指定します。どちらかというとカレンダーベースのシステムです。 Time は、1970年1月1日(UTC)からの秒数で表され、タイムゾーンに依存しません。これは、伝統的にこの値が符号付き32ビット整数として保存されているためですが、新しいバージョンのRubyでは、必要に応じて64ビット値またはBigNumを使用して、より広い範囲を処理することができます。

要するに DateTime はRailsのデータベースから得られるもので、Rubyが伝統的に使ってきたのはTimeです。日付が重要な値を扱う場合、月末や6週間先が知りたい場合は、DateTimeを使います。経過時間を計測するだけで、そのようなことは気にしないのであれば、Timeを使います。必要であれば、簡単に変換することができます。

Date 一方、日付は単なるカレンダーの日付で、時間との関連はありません。時刻が重要でない場合は、これらを使用するとよいでしょう。

strptime はパース時間の略です。 strftime は "formatting time" を表します。つまり strptime の反対です。 strftime とはいえ、便利なことに、両者は同じ書式指定を使っている。私は、ほとんど見たことがありません。 strptime が使用されるようになってから DateTime.parse は通常、何が起こっているのかをうまく拾ってくれますが、本当にそれを明記する必要がある場合は、ぜひレガシーパーサーを使用してください。