【问题标题】:Display a FrozenTime object in ISO_8601 while converted to a timezone在转换为时区时以 ISO_8601 显示 FrozenTime 对象
【发布时间】:2020-09-11 04:56:41
【问题描述】:

我有一个Cake\I18n\FrozenTime 对象,我需要将其显示为2020-09-11T04:15:44+00:00 转换为特定时区。

通常情况下,我会调用 ->format('c'),但根据我的应用配置使用 UTC。

我知道我可以使用->i18nFormat('yyyy-MM-dd HH:mm', 'Europe/Copenhagen') 转换为时区,但是我将失去c date format shorthand 的便利性。缺少IntlDateFormatter predefined constants,而those from DateTimeInterface(特别是\DateTime::ATOM)不起作用。

所以在我继续使用->i18nFormat("yyyy-MM-dd'T'HH:mm:ssxxx", 'Europe/Copenhagen') 重新发明轮子之前,有没有更好的方法在特定的date format 和特定的时区显示Cake\I18n\FrozenTime

【问题讨论】:

    标签: datetime cakephp cakephp-3.0


    【解决方案1】:

    如果你想保留一个日期对象,你可以简单地在对象上应用时区转换。

    Frozen* 对象是不可变的,因此在应用转换时您最终会得到一个新对象:

    echo $obj->setTimezone('Europe/Copenhagen')->format('c')
    

    另见

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-07-29
      • 1970-01-01
      • 2015-10-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-11-27
      相关资源
      最近更新 更多