四个问题:
- 日期时间不导出
set_Time_Zone。
- 您使用
$dt 却没有给它一个值。 (这就是产生错误消息的原因。)
- “EST”不是标准时区名称,应避免使用。它可以指东部标准时间 (UTC-0500),这是一个在 5 月 10 日大部分未使用的时区。如果是这样,请指定
-0500。
- 您不打印任何内容。
如果您确实指的是东部标准时间(尽管在遵守 DST 的地方没有在 5 月 10 日使用它),请使用以下内容:
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(...)。
- 如果使用 Windows 命令外壳,请交换
' 和 "。