jin*_*wow 11 perl datetime gmt
我想在Perl中将日期/时间GMT 0转换为GMT -6.
例如,DHCP服务器租约时间采用以下格式:
2010/02/18 23:48:37
我正在尝试将该时间转换为Localtime区域(GMT -6),但需要它来兑现夏令时.
下面的脚本可能有点矫枉过正,但我不知道如何从这里开始.(任何建议都很棒).
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";
Run Code Online (Sandbox Code Playgroud)
它将输出以下行:
2010-02-18T23:48:37
-21600
我需要能够在日期中添加-21600以获得GMT -6的本地时区,但我不知道如何解决这个问题.
Iva*_*uev 18
呼叫set_time_zone方法2次:
my $dt = DateTime::Format::MySQL->parse_datetime($TIMESTART);
$dt->set_time_zone('UTC'); ## set timezone of parsed date time
$dt->set_time_zone('America/Chicago'); ## change timezone in safe way
print DateTime::Format::MySQL->format_datetime($dt),"\n"; ## check the result
Run Code Online (Sandbox Code Playgroud)
这个怎么运作:
DateTime没有指定时区的对象时,会设置"浮动"时区set_time_zone更改时区为UTC无转换set_time_zone改变UTC到America/Chicago| 归档时间: |
|
| 查看次数: |
12940 次 |
| 最近记录: |