localtime
perl下time函数会返回一个十位的时间戳,精确到秒,看起来像这个样子(1180630098)。这个数字是从1900年到当前时间的秒数。但你并看不出是什么意思。所以需要转换形式,转换成‘Thu May 31 09:48:18 2007’这样的字符串。Perl可以在标量上下文中使用localtime函数完成这种转换。
my $timeswap=1180630098;
my $date=localtime $timeswap;
在列表下文中,localtime会返回一个数字元素组成的列表:
my ($sec,$min,$hour,$day,$mon,$year,$wday,$yday,$isdst)=localtime $timestamp;
列表中各元素的含义如下:
- $mon 月份,取值0~11,用于表示从1月到12月。
- $year 从1900年开始计算,将该值加上1900就是实际的年份;
- $wday 本周的第几天,取值0~6,用于表示周日到周六 ;
- $yday 表示目前是今年的第几天,0(1月1号)~364或者365;
- $sec 秒,当前分钟的第多少秒,取值0~59;
- $min 分,当前小时的第多少分钟,取值0~59;
- $hour 时,今天的第多少个小时,取值0~23;
- $day 日,当前月的第多少天,取值0~29或30;
- isdst 如果指定的时间在夏令时期间,则为true,否则为false。
注:默认情况(不传参时)下使用time函数的返回值作为参数:
gtime
gtime函数与localtime函数一样,但返回的值为本地化的格林尼治标准时区(GMT)时间。
默认情况(不传参时)下使用time函数的返回值作为参数:
my $now=gmtime;#取得当前时间的格林尼治标准时区(GMT)时间。
注意:在列表上下文中调用时,$ isdst,gmtime返回的最后一个值始终是0 。GMT没有夏令时。