软件测试 | 以编程方式对时间值进行编码
问题
你已经决定你的应用以某种有趣的方式来使用时间,现在你希望以特定格式生成特定的值。
解决方案
对这种工作而言,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。
评论