軟件測試 | 以編程方式對時間值進(jìn)行編碼
問題
你已經(jīng)決定你的應(yīng)用以某種有趣的方式來使用時間,現(xiàn)在你希望以特定格式生成特定的值。
解決方案
對這種工作而言,Perl是一件很棒的工作。你將需要Time::Local模塊來對Unix時間戳進(jìn)行某些處理,還需要POSIX模塊中的strftime。這兩個都是標(biāo)準(zhǔn)模塊。例4-3中的代碼演示了4中不同的格式以及如何計算它們。
例4-3:使用Perl對各種各樣的時間值進(jìn)行編碼
討論
你可以使用perldoc Time::Local或man strftime來找出有關(guān)于格式化時間的方法的更多信息。
警告:Perl在時間方面的古怪行為
盡管Perl非常靈活,而且無疑是完成這項工作的一件極好的工具,但它有自己的古怪行為。在編寫像這樣的代碼時,請注意月份取值。因為一些費解的原因,它們從0開始對月份計數(shù)。也就是說,一月份對應(yīng)0,二月份對應(yīng)1,而不是一月份對應(yīng)1.日期則不是這樣。每個月的第一天對應(yīng)1。此外,你需要注意的編碼方式。年份從1900開始計數(shù)。因此,1999年對應(yīng)99,而2008年對應(yīng)108.要獲得正確的年份取值,必須增加1900.盡管經(jīng)歷; 前年蟲事件,但是至今仍有網(wǎng)站將日期顯示為6/28/108。
標(biāo)簽:軟件測試霍格沃茲測試開發(fā)學(xué)社