通过Perl中提供的gmtime函数,你可以自己来验证这点。给定一个用以表示自从纪元以来的秒数的整数,通过gmtime函数可以计算出代表相应的日期和时刻,例如:
perl –le 'print scalar gmtime 96163200'
Thu Jan 18 00:00:00 1973
如果你调用 gmtime() 函数,你会得到一系列值的列表:
包括时,分,秒, 日期,月份,年份等等。
perl –le 'print join(",", gmtime 96163200)'
0,0,0,18,0,73,4,17,0
前面3个0分别表示秒,分,时。小时是从0-23,故下午是12时往后。第4个数表示该月中的天数(本例中为18号)。第5个数表示月份,从0开始(代表1月份)。之所以从0开始,是因为月份对应着月份数组的下标:
@months = qw(Jan Feb Mar Apr May Jun
Jul Aug Sep Oct Nov Dec); $month =
(gmtime 96163200)[4]; # "Jan"
年份 (本例中为73)的表示有点特殊。它并不是年份的最后两位数字。它表示从1900年开始的年份。为什么要这样表示呢?这是因为 C语言就是这样处理的。Perl试图使得其库和系统调用尽量接近操作系统的处理方式。
所以,如果你想输出4位数的年份,表示如下:
$year = (gmtime 96163200)[5] + 1900;
如果你不了解这种处理方式,就会制造出Y2K问题,你也许会这样写:
$year = "19" . (gmtime 96163200)[5];
# 出错! 2000年将变为19100
对于gmtime()函数的返回值还没有介绍完,还有4, 17, 和 0这3个数。它们分别表示一星期中的第几天 (星期日为0),一年中的第几天(0 表示一年中的第一天), 以及是否采用夏时制(表示不采用,正数表示采用,负数表示不可知)。
上一页 | 下一页 |
日期是如何表示的 | 现在!现在!现在! |