问题描述
我有一个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
?
解决方法
如果要保留日期对象,只需在对象上应用时区转换即可。
Frozen*
对象是不可变的,因此在应用转换时您将得到一个新对象:
echo $obj->setTimezone('Europe/Copenhagen')->format('c')
另请参见