我有以下日期,我想将其转换为POSIX时间。我跟着this answer但是如果我将日期转换回来,输入和输出日期之间会有所不同。
char_date <- "2012-04-27T20:48:14"
unix_date <- as.integer(as.POSIXct(char_date, origin="1970-01-01"))
unix_date
# [1] 1335448800
转换回2012年4月26日星期四14:00:00。
我搞砸了什么?
答案 0 :(得分:2)
不需要sub
,您应该始终定义时区:
x <- as.POSIXct("2012-04-27T20:48:14", format="%Y-%m-%dT%H:%M:%S", tz="CET")
#[1] "2012-04-27 20:48:14 CEST"
as.numeric(x)
#[1] 1335552494
答案 1 :(得分:0)
我认为这里有2个问题:T
字符正在影响字符解析器,因此它会影响时间部分,我假设你的时区是UTC + 10,这就是为什么你的翻译是在下午2点前一天。
(as.POSIXct(char_date, origin="1970-01-01"))
[1] "2012-04-27 BST"
(as.POSIXct(sub("T"," ",char_date), origin="1970-01-01"))
[1] "2012-04-27 20:48:14 BST"