【问题标题】:How to supply DateTime with an abbreviated timezone如何为 DateTime 提供缩写的时区
【发布时间】:2010-11-14 07:35:15
【问题描述】:

当我在收到以下日期格式后尝试创建 DateTime 对象时:

Fri 01 Oct 2010 12:19:54 AM JMT

我解析日、月、年、时间和时区。

但是,使用缩写时区创建 DateTime 对象似乎不起作用。

# ... After parsing and converting to epoch...
my $dt = DateTime->from_epoch( epoch => $date_epoch,
                                        time_zone => 'JMT' );

我明白了:

Invalid offset: JMT

有没有办法为 DateTime 提供一个缩写的时区?

如果不是,将缩写时区转换为完整时区字符串(在 Perl 中)的最佳方法是什么。

【问题讨论】:

  • 来自search.cpan.org/dist/DateTime-TimeZone/lib/DateTime/TimeZone.pm:强烈建议您不要将这些名称用于显示以外的任何内容。这些名称并非官方名称,其中许多只是 Olson 数据库维护者的发明。此外,这些名称并不是唯一的。例如,在 -0500 和 +1000/+1100 处都有一个“EST”。
  • EST 确实有几次让我感到困惑!

标签: perl timezone


【解决方案1】:

来自DateTime::TimeZone

强烈建议您这样做 不要依赖这些名字做任何事情 除了显示。这些名字是 不是官方的,其中许多是 只是奥尔森的发明 数据库维护者。此外,这些 名称不是唯一的。例如, 在 -0500 和 +1000/+1100。

【讨论】:

    猜你喜欢
    • 2010-09-15
    • 2019-02-12
    • 2013-12-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-21
    • 2023-03-08
    相关资源
    最近更新 更多