r - 如何将日期和时间从 UTC 转换为 R 中的本地时间?
问题描述
我有一个vlinder
如下所示的数据框 (),其中日期和时间戳(以 UTC 为单位)位于不同的列中:
date time.utc variable
1/04/2020 0:00:00 12
1/04/2020 0:05:00 54
第一步,我将date
和time
变量组合到一个列中,dateandtime
使用以下代码调用:
vlinder$dateandtime <- paste(vlinder$date, vlinder$time.utc)
这导致 dataframe 中有一个额外的列vlinder
:
date time.utc variable dateandtime
1/04/2020 0:00:00 12 1/04/2020 0:00:00
1/04/2020 0:05:00 54 1/04/2020 0:05:00
我想将 UTC 时间转换为本地时间(即 CEST,因此时差为 2 小时)。
我尝试使用以下代码,但我得到了完全不同的东西。
vlinder$dateandtime <- as.POSIXct(vlinder$dateandtime, tz = "UTC")
vlinder$dateandtime.cest <- format(vlinder$dateandtime, tz = "Europe/Brussels", usetz = TRUE)
这导致:
date time.utc variable dateandtime dateandtime.cest
1/04/2020 0:00:00 12 0001-04-20 0001-04-20 00:17:30 LMT
1/04/2020 0:05:00 54 0001-04-20 0001-04-20 00:17:30 LMT
我该如何解决这个问题?非常感谢!
解决方案
默认格式as.POSIXct
需要按年-月-日排序的日期。因此,日期 01/04/2020 被转换为第 1 年的 4 月 20 日。
您只需将时间格式添加到as.POSIXct
:
vlinder$dateandtime <- as.POSIXct(vlinder$dateandtime, tz = "UTC", format = "%d/%m/%Y %H:%M:%S")
format(vlinder$dateandtime, tz = "Europe/Brussels", usetz = TRUE)
推荐阅读
- data-distribution-service - DDS 参与者在终止时不会立即取消注册
- javascript - 富文本编辑器并通过提交按钮获得焦点
- java - 类变量上的空指针异常
- flutter - 颤动的gridView子高度固定,添加其他小部件无法显示?
- android - 如何在 OnClick 中查找数据库中的 ID?
- swift - 如何在swift的单元测试中验证是否在具体类中调用了方法
- python - 使用 pyper 返回 None 的函数
- python - csv文件中行的匹配字符串
- mongodb - 春季安全认证
- ruby-on-rails - 尝试在我的 rails 5.x 应用程序中为我的自定义布局导入引导库