在 Sparklyr 中将字符串转换为时间戳
Convert String to timestamp in 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。
我遇到了同样的问题,我想是和时区设置有关
在程序的顶部尝试以下操作,然后问题就会消失:
sparklyr::invoke_static(sc, "java.util.TimeZone", "getTimeZone", "GMT") %>%
sparklyr::invoke_static(sc, "java.util.TimeZone", "setDefault", .)
查看此答案了解更多详情:
我想将 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。
我遇到了同样的问题,我想是和时区设置有关 在程序的顶部尝试以下操作,然后问题就会消失:
sparklyr::invoke_static(sc, "java.util.TimeZone", "getTimeZone", "GMT") %>%
sparklyr::invoke_static(sc, "java.util.TimeZone", "setDefault", .)
查看此答案了解更多详情: