首页 > 解决方案 > 在R中从军用时间转换为UTC

问题描述

我有一个数据集 df1,我想将所有值从 24 小时制转换为 UTC。

  Date               Name

  1/2/2020 16:46      A
  1/2/2020 16:51      B

我想

  Date                  Name

  1/2/2020 4:46:47 PM      A
  1/2/2020 4:51:44 PM      B

我试过了:

  df$Date<- format(df$Date, "%m/%d/%Y %I:%M:%S %p")

输入:

 structure(list(Date = structure(1:2, .Label = c("1/2/2020 16:46", 
 "1/2/2020 16:51"), class = "factor"), Name = structure(1:2, .Label = c("A", 
"B"), class = "factor")), class = "data.frame", row.names = c(NA, 
-2L))

标签: rdplyrtidyversestringr

解决方案


您可以先将数据转换为POSIXct格式,然后用于format获取所需格式的数据。

df$Date <- format(as.POSIXct(df$Date, format = "%m/%d/%Y %H:%M"), 
                  "%m/%d/%Y %I:%M:%S %p")
#Can also use mdy_hm from lubridate
#df$Date <- format(lubridate::mdy_hm(df$Date), "%m/%d/%Y %I:%M:%S %p")
df

#                    Date Name
#1 01/02/2020 04:46:00 PM    A
#2 01/02/2020 04:51:00 PM    B

推荐阅读