strftimeとは?
日時データを指定したフォーマットで文字列に変換することができるメソッド。
TimeクラスとDateクラス、DateTimeクラスのオブジェクトを指定したフォームで文字列として取得し表示させることができる。
各クラスについて
◯Timeクラス
日時を扱えるクラス。
ターミナル
# 現在の日時を取得
today = Time.now
=> 2000-01-01 12:00:00 +0000
# 日時を指定して作成
day = Time.new(2000,1,1,12,00,00)
=> 2000-01-01 12:00:00 +0000
◯Dateクラス
日付を扱えるクラス。rubyで使うためには**require "date"**が必要になる。
ターミナル
require "date"
# 現在の日時を取得
today = Date.today
=> Wed, 01 Jan 2000
# 日時を指定して作成
day = Date.new(2000,1,1)
=> Wed, 01 Jan 2000
◯DateTimeクラス
日時を扱えるクラス。Dateクラスのサブクラスとして定義されているため、rubyで使うためにはDateクラスと同じように**require "date"**が必要になる。
ターミナル
require "date"
# 現在の日時を取得
today = DateTime.now
=> Wed, 01 Jan 2000 12:00:00 +0000
# 日時を指定して作成
day = DateTime.new(2000,1,1,12,00,00)
=> Wed, 01 Jan 2000 12:00:00 +0000
strftimeメソッドの使い方
使い方
require "date"
datetime = DateTime.now
datetime.strftime("書式")
例)2000年1月1日と表示させたい場合
例
require "date"
datetime = DateTime.new(2000,1,1,12,00,00)
datetime.strftime("%Y年%m月%d日")
=> "2000年01月01日"
指定できる書式は下記の通りとなる。
※「 2000-01-02 15:12:34+09:00 」を基準に使用
書式 | 返り値 | 説明 |
---|---|---|
%Y | 2000 | 西暦を4桁の数で取得する |
%m | 01 | 月を2桁の数字で取得する(01〜12) |
%-m | 1 | 月を1桁か2桁の数字で取得する(1〜12) |
%d | 02 | 日付を2桁で取得する(01〜31) |
%-d | 2 | 日付を1桁か2桁で取得する(1〜31) |
%H | 15 | 24時間制の時刻を2桁で取得する(00〜23) |
%-H | 15 | 24時間制の時刻を1桁か2桁で取得する(0〜23) |
%I | 3 | 12時間制の時刻を1桁か2桁で取得する(1〜12) |
%M | 12 | 分を取得する(00〜59) |
%S | 34 | 秒を取得する(00〜60)※60はうるう秒 |