LoginSignup
0
0

More than 3 years have passed since last update.

【簡潔】Timeオブジェクト, Dateオブジェクトの生成方法~フォーマット文字列~

Posted at

概要

この記事では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日"

この記事を読んでいただきありがとうございました。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0