【问题标题】:Convert String to timestamp in Sparklyr [duplicate]在 Sparklyr 中将字符串转换为时间戳 [重复]
【发布时间】:2019-10-23 04:45:21
【问题描述】:

我想将字符串转换为时间戳,我使用了下面的代码,但它增加了 4 小时的时间戳,如果你能帮我解决问题,我真的很感激

我使用了 Sparklyr。

fds<- fds %>%  
  mutate(time2 = from_unixtime(
    unix_timestamp(transaction_time, "yyyy-MM-ddHH:mm:ss"), "yyyy-MM-dd HH:mm:ss"))
fds<- fds %>% mutate(transaction_time_2 = to_timestamp(time2))

transaction_time 是这种格式的字符串'2018-05-3016:00:40' 通过使用from_unixtime,它已被转换为''2018-05-30 16:00:40',通过使用to_timestamp,它已被转换为2018-05-30 20:00:40。一切都是正确的,除了 20 小时,我仍然预计 16 小时。

【问题讨论】:

    标签: r string date sparklyr


    【解决方案1】:

    我遇到了同样的问题,我认为它与时区设置有关 在程序顶部尝试以下操作,那么问题应该会消失:

    sparklyr::invoke_static(sc, "java.util.TimeZone",  "getTimeZone", "GMT") %>%
      sparklyr::invoke_static(sc, "java.util.TimeZone", "setDefault", .)
    

    查看此答案了解更多详情:

    changing the JVM timezone in sparklyr

    【讨论】:

    • 感谢您的帮助,它成功了@Mouad_S
    • 这是救命稻草,谢谢!类似问题中的其他解决方案似乎都没有像这样工作。
    猜你喜欢
    • 1970-01-01
    • 2017-01-18
    • 1970-01-01
    • 2016-11-27
    • 1970-01-01
    • 2019-10-29
    • 2013-10-21
    • 2012-05-16
    • 1970-01-01
    相关资源
    最近更新 更多