将字符串转换为Sparklyr中的时间戳

时间:2019-06-07 16:46:31

标签: r string date sparklyr

我想将String转换为时间戳,我使用了下面的代码,但是它增加了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小时。

1 个答案:

答案 0 :(得分:0)

我遇到了同样的问题,我认为这与时区设置有关 尝试在程序顶部执行以下操作,然后问题应消失:

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

查看此答案以获取更多详细信息:

changing the JVM timezone in sparklyr