我有这个时间戳数据库(AlertTime),我知道它们在哪个时区(TimeZone)。我知道如何将这些日期设置为POSIXCT或全部为UTC,但是由于大多数功能都不接受tz的矢量,因此我很难将它们标识为本地时间戳。
我确实需要正确设置本地时间戳(AlertTimeLocal)和等效UTC(AlertTimeUTC)。
AlertTime TimeZone AlertTimeLocal (desired) AlertTimeUTC (desired)
11 May 2020, 06:22 PM America/Denver 2020-05-11 18:22:00 MDT 2020-05-12 00:22:00 MDT
11 MAY 2020, 04:11 AM America/Los_Angeles 2020-05-11 04:11:00 PDT 2020-05-11 11:11:00 UTC
10 MAY 2020, 03:38 PM America/Chicago 2020-05-10 15:38:00 CDT 2020-05-10 20:38:00 CDT
我正在使用此代码,但似乎不再执行任何操作:
FreshAir$AlertTimeLocal <- mapply(function(x,y) {format(x, tz=y, usetz=TRUE)}, FreshAir$AlertTime, FreshAir$TimeZone)
一个棘手的解决方案是将所有RAW时间戳设置为UTC,然后将它们转换为另一个方向的等效时区吗?
We can use
force_tzs
fromlubridate
数据
我认为整洁的解决方案可能看起来更干净,但是如果您想要基本的R解决方案,可以使用以下替代方法: