您的位置:首页 >> Web开发 >> CGI技术 >> 正文
CGI技术 RSS
 

perl中的日期处理

http://www.rdxx.com 06年04月21日 07:27 网海之贝 我要投稿

关键词: 日期处理 , Perl , 日期


其结果说明了什么呢?你不能存储gmtime(2**31)之前或gmtime(2**31-1)之后的以纪元秒表示的日期。

你可千万不要想不开,这可不是什么大问题。如果你要用到32位有符号整数表示的纪元秒以外的时间,你只需要改变你的表示方式,你可从CPAN中找到不少日期模块,其中的Date::Calc 和Date::Manip 很可能是功能最强的两个模块。

这两个模块使用自己的日期表示方式,以避免Y1901-Y2038 的限制。 Date::Manip 使用罗马历法,从公元 0000 到公元9999。 Date::Calc 也使用罗马历法,可表示的年份从1 到 32767。
总结
不同的国家在不同的时期采用了罗马历法,你应该注意你使用的日期是采用的是什么历法。

在UNIX机器内部,每过1秒,纪元秒的计数器加1,如果该值是以32位有符号整数格式表示的,系统在2038年的日期将会出现翻转现象,预计大多数操作系统将在2038年之前改正这一问题。

对于在1902-2037范围内的日期和时期表示, 把它们转换为纪元秒,要存取这些数,你只需使用整数算术运算,gmtime() 和 localtime()函数,以及标准的Time::Local模块。如果要对该范围以外的日期进行计算或者要分析某特殊的日期格式,你可以使用CPAN中的Date::Manip 和Date::Calc模块。

进一步的阅读

Perl Cookbook的第三章谈论了日期和时间, perlfunc 手册( 或Programming Perl的第三章) 介绍了gmtime() 和localtime() 函数。. CPAN是指Perl综合网。

共4页  1 2 3 4


 
 
标签: 日期处理 , Perl , 日期 打印本文
 
 
  热点搜索
 
 
 



Valid XHTML 1.0 Transitional
Copyright ©2005 - 2008 Rdxx.Com,All Rights Reserved
收藏本页
收藏本站