
��Ϥ��ޤ�DateTime�ϻȤäƤʤ��Τ����ɡ�better practice�򸫤Ĥ����Ȼפ��Τǡ�
[perl] DateTime->now(time_zone => 'local')�äƷ��� - �����̤�����(�����) (2006-12-06)Perl�������������⥸�塼��Υǥե����ȥ���������ɤǤ���DateTime�Ǥ��������ޤǡ֥����ॾ����ʤ�ƥ����ƥ���������Ƥ����Τ��龡��˼�äƤ��Ƥۤ����פȤ�����ͳ��DateTime->now(time_zone => 'local');�ʤ�Ƥ��Ȥ򤷤Ƥ��ΤǤ��������줬���٤ʤ��Ȥ�ȯ�Ф��ޤ�����
��Ԥǽ񤯤ȡ��ʲ��ΤȤ��ꡣ
my $tzhere = DateTime::TimeZone->new( name => 'local' ); my $dt = DateTime->now(time_zone => $tzhere);
�פϡ����餫����DateTime::TimeZone
���֥������Ȥ򤳤����Ȥ��ơ������Ȥ��󤻤Ȥ������ȡ����������������ʾ�˹�®�ˤʤ뤷���ݡ����ӥ�ƥ���»�ʤ����Ȥ⤢��ޤ���
#!/usr/bin/perl use strict; use DateTime; use DateTime::TimeZone; use Benchmark qw/cmpthese timethese/; sub gentest { my $tz = shift; sub { DateTime->now( time_zone => $tz ) } } my $tzhere = DateTime::TimeZone->new( name => 'local' ); my %these; for my $tz ( 'local', 'Asia/Tokyo', $tzhere ) { my $name = ref($tz) ? q($tz) : qq('$tz'); $these{ "now($name)" } = gentest($tz); } cmpthese( timethese( 0, \%these ) );FreeBSD 6-STABLE
now($tz): 3 wallclock secs ( 3.16 usr + 0.02 sys = 3.18 CPU) @ 2279.15/s (n=7247) now('Asia/Tokyo'): 4 wallclock secs ( 3.19 usr + 0.02 sys = 3.20 CPU) @ 2029.58/s (n=6501) now('local'): 4 wallclock secs ( 0.87 usr + 2.36 sys = 3.23 CPU) @ 67.25/s (n=217) Rate now('local') now('Asia/Tokyo') now($tz) now('local') 67.3/s -- -97% -97% now('Asia/Tokyo') 2030/s 2918% -- -11% now($tz) 2279/s 3289% 12% --Mac OS X v10.4.8
now($tz): 4 wallclock secs ( 3.23 usr + 0.02 sys = 3.25 CPU) @ 2871.08/s (n=9331) now('Asia/Tokyo'): 3 wallclock secs ( 3.18 usr + 0.01 sys = 3.19 CPU) @ 2616.61/s (n=8347) now('local'): 3 wallclock secs ( 3.09 usr + 0.16 sys = 3.25 CPU) @ 1767.38/s (n=5744) Rate now('local') now('Asia/Tokyo') now($tz) now('local') 1767/s -- -32% -38% now('Asia/Tokyo') 2617/s 48% -- -9% now($tz) 2871/s 62% 10% --
���ʤߤˡ�OS X�������������ʤ��Τϡ�/etc/localtime
��symlink�����顣DateTime::TimeZone
�Ϥ��ξ���Symlink���ɤ�ǥ����ॾ����̾�򤹤��˳��Ф��Τ����ɡ��¥ե�����ξ��ϡ�/usr/share/zoneinfo
�ʲ��Υե����������File::Compare
����Ӥ���Ȥ����ޤ��ޤ�����ˡ��Ĵ�٤ޤ���
����ʤȤ������ʡ�
Dan the Man with Too Many Timezones to Cover
# ���ѥޥ���Ǥʤ��Τ� CURRENT �������Ƥޤ�