日付の書式指定
strftimeを使います。
use POSIX 'strftime'; my $now = strftime "%Y/%m/%d %H:%M:%S", localtime; print $now, "\n";日付だけであればDate::Simpleモジュールでも取得できます。
use Date::Simple; my $date = Date::Simple->new(); print $date->format('%Y/%m/%d'), "\n";使える書式文字列はプラットフォームによって異なります。代表的なものを以下に書いておきます。
意味 | 例 | |
---|---|---|
%a | 現在のロケールにおける曜日の省略名。 | Sat |
%A | 現在のロケールにおける曜日の完全な名前。 | Saturday |
%b | 現在のロケールにおける月の省略名。 | Nov |
%B | 現在のロケールにおける月の完全な名前。 | November |
%c | 現在のロケールにおいて一般的な日付・時刻の表記。 | Wed Dec 11 20:53:28 2002 |
%C | 西暦年の上2桁 | 20 |
%d | 日(01-31)。 | 11 |
%D | %m/%d/%yと同じ。 | 12/11/02 |
%e | 日( 1-31)。(1桁の場合10の位は0ではなくスペースになる) | 9 |
%F | %Y-%m-%dと同じ。 | 2002-12-11 |
%h | %bと同じ。 | Dec |
%H | 24時間表記での時(00-23)。 | 20 |
%I | 12時間表記での時(01-12)。 | 8 |
%j | 年の初めから通算の日数(001-366)。 | 345 |
%k | 24時間表記での時(00-23)。(1桁の場合10の位は0ではなくスペースになる) | 1 |
%l | 12時間表記での時(01-12)。(1桁の場合10の位は0ではなくスペースになる) | 1 |
%m | 月(01-12)。 | 12 |
%M | 分(00-59)。 | 57 |
%n | 改行 | |
%p | 現在のロケールにおける「午前」「午後」に相当する文字列。 | PM |
%P | %pと同じですが、小文字。 | pm |
%s | 1970/01/01 00:00:00 UTC からの秒数。 | 1039607864 |
%S | 秒(00-61)。 | 44 |
%t | タブ | |
%T | %H:%M:%Sと同じ。 | 20:57:44 |
%u | 週の何番目の日か(1-7)。月曜日を1とする。 | 3 |
%U | 年の初めからの通算の週数(00-53)。その年の最初の日曜日を第1週の始まりとする。 | 49 |
%V | ISO 8601:1988形式での年の始めからの週数(00-53)。その年に少なくとも4日以上含まれる最初の週を1として計算する。週の始まりは月曜日とする。 | 50 |
%w | 週の何番目の日(0-6)か。日曜日を0とする。 | 3 |
%W | 年の初めからの通算の週数(00-53)。その年の最初の月曜日を第1週の始まりとする。 | 49 |
%x | 現在のロケールで一般的な日付表記。 | 12/11/02 |
%X | 現在のロケールで一般的な時刻表記。 | 20:57:44 |
%y | 西暦の下2桁(00-99)。 | 02 |
%Y | 西暦(4桁)。 | 2002 |
%z | タイムゾーンのGMTへのオフセット時間。 | +0900 |
%Z | タイムゾーン名。 | JST |
%% | % | % |