Tôi đang cố gắng chuyển đổi ngày/giờ GMT 0 thành GMT -6 trong Perl.Làm thế nào tôi có thể chuyển đổi múi giờ trong Perl?
Ví dụ, một thời gian DHCP Server là thuê theo định dạng sau:
2010/02/18 23:48:37
Tôi cố gắng để chuyển đổi thời gian đó để các localtime vùng (GMT -6) nhưng cần nó để tôn vinh tiết kiệm ánh sáng ban ngày.
Tập lệnh bên dưới có thể quá mức cần thiết, nhưng tôi không chắc chắn cách tiếp tục từ đây. (Bất kỳ đề xuất sẽ là awsome).
my $TIMESTART;
$TIMESTART = "2010/02/18 23:48:37";
$TIMESTART =~ s/\//-/g;
use DateTime;
use DateTime::TimeZone;
use DateTime::Format::MySQL;
my $dt = DateTime::Format::MySQL->parse_datetime($TIMESTART);
my $tz = DateTime::TimeZone->new(name => 'America/Chicago');
print $tz->offset_for_datetime($dt) . "\n";
Nó sẽ ra những dòng sau:
2010-02-18T23: 48: 37
-21600
tôi cần để có thể thêm -21.600 đến để có múi giờ địa phương của GMT -6 nhưng tôi không chắc chắn làm thế nào để phê chuẩn điều này.
Khác với sử dụng tại Vương quốc Anh, vui lòng sử dụng UTC, thay vì GMT làm giờ chuẩn quốc tế. Một số hệ thống giả định GMT có nghĩa là UTC, trong khi các hệ thống khác giả định GMT/BST, như được sử dụng ở Anh. – mctylr
Tôi đoán có nhiều cách để thực hiện việc này. – mob