###概要
この記事ではTimeオブジェクトとDateオブジェクトについて学ぶことができます。
今回はターミナルのpryを利用して見ていきます。
###Timeオブジェクト
TimeオブジェクトはTimeクラスにnewメソッドを使用することで生成ができます。
[128] pry(main)> datetime = Time.new(2018, 2, 1, 12, 34)
=> 2018-02-01 12:34:00 +0900
また、`strftime`メソッドを使うことで任意のフォーマットで日時を生成することができます。
datetime.strftime("%Y年 %m月%d日 %H時%M分")
=> "2018年 02月01日 12時34分"
%Y
などの見慣れない文字はフォーマット文字列の一つです。
strftime
メソッドに引数として出力したい形式を表す文字列を指定します。
少しだけフォーマット文字列も紹介します。
###フォーマット文字列
文字列 | 表示内容 |
---|---|
%A | 曜日の名称(Sunday, Monday など) |
%a | 曜日の省略名(Sun, Mon など) |
%B | 月の名称(January, February など) |
%b | 月の省略名(Jan, Feb など) |
%c | 日付と時刻 |
%d | 日(01~31) |
%H | 24時間の時(00~23) |
%M | 分(00~59) |
%m | 月を表す数字(01~12) |
%Y | 西暦を表す数 |
%y | 西暦の下2桁(00~99) |
上の表を参考にしながら見ていきます。
[140] pry(main)> Time.now.strftime("%c")
=> "Wed May 13 12:01:51 2020"
now
メソッドで現在の時間を取得しています。
そしてstrftime
メソッドで任意のフォーマットで出力できるようにしています。
ここでは%c
を使っていますね。
表を見てみると
文字列 | 表示内容 |
---|---|
%c | 日付と時刻 |
なので日付と時刻が表示されています。
###Dateオブジェクト
Timeクラスから時刻を引いたDateクラスを使用して生成できるオブジェクトです。
Rubyの環境ではDateクラスをいきなり使用することができません。
ですので、以下のようにすることでDateライブラリを読み込んでDateクラスを使用することができるようになります。
[131] pry(main)> require "date"
=> true
まとめると以下の感じです。
[1] pry(main)> Date #いきなり使用できない
NameError: uninitialized constant Date
Did you mean? Data
from (pry):1:in `__pry__'
[2] pry(main)> require "date" #requireでDateライブラリを読み込む
=> true
[3] pry(main)> Date #Dateクラスが使用できるようになる
=> Date
Dateクラスは`today`メソッドを使うことで今日の日付を取得できます。
[4] pry(main)> Date.today
=> #<Date: 2020-05-13 ((2458983j,0s,0n),+0s,2299161j)>
DateクラスもTimeクラスと同様に任意のフォーマットで出力できます。
[135] pry(main)> Date.new(2019, 2, 3).strftime("%Y年%m月%d日")
=> "2019年02月03日"
この記事を読んでいただきありがとうございました。