[英]Convert Unix timestamp into datetime
我有以下數據框
> head(try)
creates time
1 128.29508 1417392072
3 236.98361 1417392072
7 98.45902 1417392072
9 157.44068 1417392131
10 227.38333 1417392131
11 242.03390 1417392131
> str(try)
'data.frame': 102968 obs. of 2 variables:
$ creates: num 128.3 237 98.5 157.4 227.4 ...
$ time : Factor w/ 26418 levels "1417392071","1417392072",..: 2 2 2 3 3 3 3 3 5 5 ...
我無法使用我嘗試過的以下方法將 UNIX 時間戳轉換為日期時間
> head(as.POSIXlt(as.numeric(try$time),origin="1970-01-01",tz="GMT"))
[1] "1970-01-01 00:00:02 UTC" "1970-01-01 00:00:02 UTC" "1970-01-01 00:00:02 UTC" "1970-01-01 00:00:03 UTC" "1970-01-01 00:00:03 UTC"
[6] "1970-01-01 00:00:03 UTC"
> head(as.POSIXct(as.character(try$time),tz="GMT"))
as.POSIXlt.character(x, tz, ...) 中的錯誤:字符串不是標准的明確格式
> head(as.POSIXlt(as.POSIXct(as.vector(as.numeric(try$time)),origin="1970-01-01")))
[1] "1970-01-01 00:00:02 UTC" "1970-01-01 00:00:02 UTC" "1970-01-01 00:00:02 UTC" "1970-01-01 00:00:03 UTC" "1970-01-01 00:00:03 UTC"
[6] "1970-01-01 00:00:03 UTC"
我不確定我在這里做錯了什么。
在使用 as.POSIXct 之前,您必須將 Factor 轉換為 Character To Number。 該函數需要一個整數作為 Unixtime
head(as.POSIXct(as.numeric(as.character(try$time)), origin="1970-01-01", tz="GMT"))
這是因為 epoch 不是數字,嘗試將其轉換為數字,它就像奇跡一樣工作!
try$time <- as.POSIXct(as.numeric(try$time), origin = '1970-01-01', tz = 'GMT')
嘗試
head(as.POSIXct(as.integer(as.numeric(as.character(try$time)) / 1000.0),
origin='1970-01-01', tz="GMT"))
關於什么
library("anytime")
anytime(try$time)
您還可以從時間戳中獲取日期anydate(try$time)
如果你想要 UTC,你可以anytime(try$time, asUTC = TRUE)
做anytime(try$time, asUTC = TRUE)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.