[英]Perl one liner command to convert EST time to GMT time
我试图在Perl中构建一个单行命令,以将EST日期时间转换为GMT时间并打印结果。 我正在使用模块“ DateTime”来完成此任务。
我尝试的命令是:
perl -MDateTime=set_Time_Zone -e "DateTime->new(year=>2019,month=>5,day=>10,hour=>18,minute=>40,time_zone=>EST)" -e "$dt->set_time_zone(GMT)"
它抛出的错误是
无法在-e第2行的未定义值上调用方法“ set_time_zone”。
如何在GMT中调用方法并打印小时?
四个问题:
set_Time_Zone
。 $dt
不会给出任何值。 (这就是产生错误消息的原因。) -0500
。 如果您确实的意思是东部标准时间(尽管5月10日在遵守DST的地方未使用该时间),请使用以下方法:
perl -MDateTime -le'print DateTime->new(...,time_zone=>"-0500")->set_time_zone("UTC")'
您更可能是指东部夏令时间。 如果是这样,请使用以下命令:
perl -MDateTime -le'print DateTime->new(...,time_zone=>"-0400")->set_time_zone("UTC")'
您可以从tz数据库中指定基于地理位置的名称,而不是使用固定偏移量。 使用这些时,DateTime会影响是否在相关日期时间使用DST并使用适当的偏移量。 这样做如下:
perl -MDateTime -le'print DateTime->new(...,time_zone=>"America/New_York")->set_time_zone("UTC")'
最后,以下是您告诉DateTime使用本地时区的方法:
perl -MDateTime -le'print DateTime->new(...,time_zone=>"local")->set_time_zone("UTC")'
笔记:
->strftime(...)
。 '
和"
。 您认为$dt
设置在哪里? 不用print()
怎么print()
? 尝试:
perl -MDateTime=set_Time_Zone -e "print(DateTime->new(year=>2019,month=>5,day=>10,hour=>18,minute=>40,time_zone=>EST)->set_time_zone(GMT));"
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.