我想将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小时。
答案 0 :(得分:0)
我遇到了同样的问题,我认为这与时区设置有关 尝试在程序顶部执行以下操作,然后问题应消失:
sparklyr::invoke_static(sc, "java.util.TimeZone", "getTimeZone", "GMT") %>%
sparklyr::invoke_static(sc, "java.util.TimeZone", "setDefault", .)
查看此答案以获取更多详细信息: