简单的格式化日期 [英] Simple way to format date

查看:122
本文介绍了简单的格式化日期的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我写了一个perl脚本来获取datetime。
它做的工作,但我想知道是否有任何更简单的方式格式化日期作为输出。

 #!/ usr / bin / perl 
使用DateTime;

我的$ dt = DateTime-> now(time_zone =>'local');
$ myTimeStamp = $ dt-> subtract(days => 1);
$ myYear = $ myTimeStamp-> year;
$ myMonth = $ myTimeStamp-> month;
if(length($ myMonth)== 1){
$ myMonth =0 $ myMonth;
}
$ myDay = $ myTimeStamp-> day;
if(length($ myDay)== 1){
$ myDay =0 $ myDay;
}
$ myHour = $ myTimeStamp->小时;
if(length($ myHour)== 1){
$ myHour =0 $ myHour;
}
#$ myDir =/ var / tmp / logs / $ myYear / $ myMonth / $ myYear $ myMonth-;

print - > $ myYear $ myMonth $ myDay $ myHour\\\
;
# - > 2012 02 28 02
exit 0;


解决方案

日期时间为此提供 format_cldr 方法:

 使用DateTime; 

my $ myTimeStamp = DateTime-> now-> subtract(days => 1);

printf - >%s\\\
,$ myTimeStamp-> format_cldr('yyyy MM dd HH');
# - > 2012 02 28 02


I wrote a perl script to get datetime. It do work but I do wonder if there any easier way to format date as output.

#!/usr/bin/perl
use DateTime;

my $dt          = DateTime->now( time_zone => 'local' );
$myTimeStamp    = $dt->subtract( days => 1 );
$myYear         = $myTimeStamp->year;
$myMonth        = $myTimeStamp->month;
if ( length( $myMonth ) == 1 ) {
    $myMonth = "0$myMonth";
}
$myDay          = $myTimeStamp->day;
if ( length( $myDay ) == 1 ) {
    $myDay = "0$myDay";
}
$myHour         = $myTimeStamp->hour;
if ( length( $myHour ) == 1 ) {
    $myHour = "0$myHour";
}
#$myDir          = "/var/tmp/logs/$myYear/$myMonth/$myYear$myMonth-";

print "--> $myYear $myMonth $myDay $myHour\n";
# --> 2012 02 28 02
exit 0;

解决方案

DateTime provides the format_cldr method for this:

use DateTime;

my $myTimeStamp = DateTime->now->subtract( days => 1 );

printf "--> %s\n", $myTimeStamp->format_cldr('yyyy MM dd HH');
# --> 2012 02 28 02

这篇关于简单的格式化日期的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆