【问题标题】:Timezone conversion: invalid 'tz' value - R时区转换:无效的 'tz' 值 - R
【发布时间】:2020-04-13 10:17:41
【问题描述】:

我的目标是将“系统”时区转换为本地时区。我将所有相关时区保存在一个列中,但它不起作用,请参见下面的示例(错误 = 无效的 'tz' 值):

   db<-data.table(c('Africa/Windhoek','Europe/Andorra','America/Chicago'), c('2017-12-31 17:04:00','2017-9-1 13:30:12','2017-12-15 21:33:13')) 
   names(db) = c('tz','date')
   db$date<- as.POSIXct(db$date, tz="Europe/London", format= c("%Y-%m-%d %H:%M:%OS"))

   db$original_time<-format(db$date, tz=db$tz) 

我在invalid 'tz' value, problems with time zone 阅读了第二个答案,(您的“无效 'tz' 值”错误的来源是因为无论出于何种原因,R 不接受 tz = df$var。如果您设置tz = 'America/New_York' 或其他一些字符值,那么它会起作用。) 但是这个手动输入真的是解决这个问题的唯一方法吗,因为我有 247 个级别/时区,我相信会有更流畅的怎么办?

谢谢!

【问题讨论】:

    标签: r data.table format timezone posixct


    【解决方案1】:

    问题是format 期望一个字符串类型,但你给它一个向量。

    尝试反复格式化

    library(purrr)
    map2(df$date, df$tz, ~ format(.x, tz = .y))
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-01-17
      • 1970-01-01
      • 1970-01-01
      • 2010-09-17
      • 1970-01-01
      相关资源
      最近更新 更多