私は職場で Perl プログラムに取り組んでいて、(私が思うに) 些細な問題に固執しています。「06/13/2012」という形式で文字列を作成するだけです (常に 10 文字なので、10 未満の数字は 0 になります)。
これが私がこれまでに持っているものです:
use Time::localtime;
$tm=localtime;
my ($day,$month,$year)=($tm->mday,$tm->month,$tm->year);
私は職場で Perl プログラムに取り組んでいて、(私が思うに) 些細な問題に固執しています。「06/13/2012」という形式で文字列を作成するだけです (常に 10 文字なので、10 未満の数字は 0 になります)。
これが私がこれまでに持っているものです:
use Time::localtime;
$tm=localtime;
my ($day,$month,$year)=($tm->mday,$tm->month,$tm->year);
を使用できますTime::Piece
。これはコア モジュールであり、バージョン 10 以降の Perl 5 で配布されているため、インストールする必要はありません。
use Time::Piece;
my $date = localtime->strftime('%m/%d/%Y');
print $date;
出力
06/13/2012
dmy
結果のフィールド間で使用されるセパレーターである単一のパラメーターを取り、完全な日付/時刻形式を指定する必要を回避するメソッドを使用することを好む場合があります。
my $date = localtime->dmy('/');
これにより、元のソリューションと同じ結果が得られます
use DateTime qw();
DateTime->now->strftime('%m/%d/%Y')
式が返す06/13/2012
難しいことをするのが好きなら:
my (undef,undef,undef,$mday,$mon,$year) = localtime;
$year = $year+1900;
$mon += 1;
if (length($mon) == 1) {$mon = "0$mon";}
if (length($mday) == 1) {$mday = "0$mday";}
my $today = "$mon/$mday/$year";
use Time::Piece;
...
my $t = localtime;
print $t->mdy("/");# 02/29/2000
Unix システム用の Perl コード:
# Capture date from shell
my $current_date = `date +"%m/%d/%Y"`;
# Remove newline character
$current_date = substr($current_date,0,-1);
print $current_date, "\n";