🐟
[Rails]Timeクラス 時刻を任意のフォーマットに変換
現在時刻などを指定し、Timeクラスのオブジェクトを作成した後で、任意に指定したフォーマットで文字列として取得する方法です。
Timeクラスのstrftime
メソッドとフォーマット文字列を用います。
書き方
変数 = Time.current.strftime(format文字列)
フォーマット文字列
フォーマット文字列 | 出力形式 |
---|---|
%A | 曜日の名称(Sunday, Monday ... ) |
%a | 曜日の省略名(Sun, Mon ... ) |
%B | 月の名称(January, February ... ) |
%b | 月の省略名(Jan, Feb ... ) |
%c | 日付と時刻 |
%d | 日(01-31) |
%H | 24時間制の時(00-23) |
%I | 12時間制の時(01-12) |
%j | 年中の通算日(001-366) |
%M | 分(00-59) |
%m | 月を表す数字(01-12) |
%p | 午前または午後(AM,PM) |
%S | 秒(00-60) (60はうるう秒) |
%U | 週を表す数。最初の日曜日が第1週の始まり(00-53) |
%W | 週を表す数。最初の月曜日が第1週の始まり(00-53) |
%w | 曜日を表す数。日曜日が0(0-6) |
%X | 時刻 |
%x | 日付 |
%Y | 西暦を表す数 |
%y | 西暦の下2桁(00-99) |
%Z | タイムゾーン |
%% | %自身 |
オプション
オプション | 説明 |
---|---|
^ | 大文字で出力を行なう |
# | 小文字であれば大文字に、大文字であれば小文字に変更する |
- | 左寄せにする(0埋めや空白埋めを行わない) |
_ | 空白埋めにする |
0 | 0埋めにする |
数値 | 表示桁数を指定する |
使用例
まずは変換前の現在時刻を取得してみます。
Time.current
Tue, 03 Aug 2021 14:56:52 JST +09:00
次にstrftimeメソッドとフォーマット文字列を用いて変換して取得してみます。
Time.current.strftime('%Y-%m-%d')
"2021-08-03"
8月を左寄せにして0を非表示にした場合。
Time.current.strftime('%-m/%d %H:%M')
"8/03 15:20"
参考
Discussion