茶漬けと玉子焼き

swiftとrubyの教室

Ruby の文字列型と日付型の変換方法

文字列型から日付型への変換

Dateのstrptimeメソッドを使う方法

Date.strptime('2017-09-03', '%Y-%m-%d')                                                                               
=> Sun, 03 Sep 2017

年が西暦の下二桁の場合

Date.strptime('17-09-03', '%y-%m-%d')                                                                                 
=> Sun, 03 Sep 2017

Yを小文字にする必要があります。

to_date を使う方法

'2017-09-03'.to_date                                                                                                  
=> Sun, 03 Sep 2017

この方法では年が下二桁の場合には対応していません。

'17-09-03'.to_date                                                                                                    
=> Fri, 03 Sep 0017


日付型から文字列への変換

strftimeを使う方法

today = Date.today  
today.strftime("%Y年 %m月 %d日")                                                                                      
=> "2017年 09月 03日"

こちらも年を下二桁で表示させることができます。

today = Date.today
today.strftime("%y年 %m月 %d日")                                                                                      
=> "17年 09月 03日"


フォーマット

フォーマット 出力形式
%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 タイムゾーン
%% %自身