Railsで日時を表示する際のデフォルトフォーマットが気に入らなかったので、 デフォルトフォーマットを設定。 まず、Railsのデフォルトはこんな感じ。 IT関連ではない日本人にとって、 YYYY-MM-DD は慣れていないだろうし、 +0900 は言わずもがななので、 YYYY/MM/DD HH:mm に統一したい。 デフォルトフォーマットの設定は config/initializers/time_formats.rb に。 ファイルがなければ新規作成。 中身はこんな感じに。
business_time gem bokmann/business_time business_time gemが便利そう。 このgemを使うと、Dateに対していろいろなmethodが使えるようになる。 [4] pry(#<Date>):1> Date.new(2015,1,2).workday? => true [5] pry(#<Date>):1> Date.today.workday? => true [6] pry(#<Date>):1> Date.today.weekday? => true [7] pry(#<Date>):1> Date.today.monday? => true # 特定の日付までの営業日を計算 [8] pry(#<Date>):1> Date.today.business_days_until(1.month.since) => 21
Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? 2021.2.11追記:DateTimeクラスは非推奨なクラスになりました DateTimeクラスは非推奨なクラスとなり、DateTimeクラスではなくTimeクラスを使うよう、公式にアナウンスされました。 参考1 But we consider use of DateTime should be discouraged. - matz (Yukihiro Matsumoto) https://bugs.ruby-lang.org/issues/15712#note-4 参考2 DateTime は deprecated とされているた
ActiveSupport による Date, Time クラスの拡張まとめ。バージョンは 2.0.2 準拠。ソースを読んで script/console で動作確認を行っています。 相互置換 Date でも Time でも、それぞれ to_time および to_date で相互に置換できます。 必要であれば to_datetime で DateTime 型への変換も可能です。 to_s の拡張 to_s に引数をつける事で、所定の形式で出力してくれます。 Time.now.to_s(:db) => "2008-2-23 17:49:29" 引数と出力の対応は以下のとおり。 Time 引数出力 :db%Y-%m-%d %H:%M:%S :time%H:%M :short%d %b %H:%M :long%B %d, %Y %H:%M :long_ordinallambda { |time
Rails2.1で日時(timestamp)カラムをテーブルに作ってセーブするとUTC時間で記録されます。 それは、なぜかというと config/environment.rb ファイルに config.time_zone = 'UTC' と書いてあるからです。 今回は、この 'UTC' という値がミソになります。 これを 'Tokyo' に変えても、DB にはやっぱりUTC時間で記録されます。 じゃあ何が違うんですか?っていうと、モデルを使用して値を取ってくると設定したタイムゾーンでの値となります。 例えば、 UTC的に言うと 2008/06/08 02:52:00 だったら タイムゾーンがUTCの場合は Sun, 08 Jun 2008 02:52:00 UTC +00:00 を取得し、 タイムゾーンがTokyoの場合は Sun, 08 Jun 2008 11:52:00 JST +09
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く