2012年7月11日 星期三

使用DateTime模組需要注意的小地方

DateTime 是CPAN上的一個模組,用來處理日期時間。

我通常使用它來產生與日期相關檔名,或者簡單的日期運算;
很方便轉換成字串以及UNIX TIME,用來顯示或者存入資料庫欄位。
要特別注意的是Time Zone的指定,使用正確的TimeZone,
才能正確顯示特定區域的日期時間,說明如下。


use strict;
use DateTime;

# 取得現在的時間,沒有指定Time Zone,所以是UTC Time Zone。
my $dt = DateTime->now;

# 指定Time Zone是local,DateTime模組會嘗試取得正確的Time Zone
my $dt = DateTime->now( time_zone => 'local' ); 

# 指定Time Zone是'Asia/Taipei'
my $dt = DateTime->now( time_zone => 'Asia/Taipei' );

# 底下兩行是一樣的
# 2011-08-26T17:12:31
print $dt->datetime(), "\n";
print $dt->iso8601, "\n";