软件测试 | 以编程方式对时间进行编码
问题
你已经决定你的应用以某种有趣的方式来使用时间,现在你希望以特定格式生成特定的值。
解决方案
对这种工作而言,Perl是一件很棒的工作。你将需要Time::Local模块来对Unix时间戳进行某些处理,还需要POSIX模块中的strftime。这两个都是标准模块。例4-3中的代码演示了4中不同的格式以及如何计算它们。
例4-3:使用Perl对各种各样的时间值进行编码
讨论
你可以使用perldoc Time::Local或man strftime来找出有关于格式化时间的方法的更多信息。
警告:Perl在时间方面的古怪行为
尽管Perl非常灵活,而且无疑是完成这项工作的一件极好的工具,但它有自己的古怪行为。在编写像这样的代码时,请注意月份取值。因为一些费解的原因,它们从0开始对月份计数。也就是说,一月份对应0,二月份对应1,而不是一月份对应1.日期则不是这样。每个月的第一天对应1。此外,你需要注意的编码方式。年份从1900开始计数。因此,1999年对应99,而2008年对应108.要获得正确的年份取值,必须增加1900.尽管经历; 前年虫事件,但是至今仍有网站将日期显示为6/28/108。