我必须在R上将带有十进制部分(作为一天的一部分)的儒略历日期转换为日期和小时。
我试过这个函数:as.Date(10625.15, origin=as.Date("1990-01-01 00:00:00"))
但是它只给了我日期而没有时间:"2019-02-02"
有人能帮我解决吗?提前感谢!!
您使用as.Date
,它返回了一个日期,这正是它的设计目的(ref:?as.Date
说它将返回一个类" date ">的对象)。幸运的是,它返回一个小数日期:
dput(as.Date(10625.15, origin=as.Date("1990-01-01 00:00:00")))
# structure(17930.15, class = "Date")
### ^^^ yay! we have fraction
所以我们可以用as.POSIXct
:
as.POSIXct(as.Date(10625.15, origin=as.Date("1990-01-01 00:00:00")))
# [1] "2019-02-02 22:36:00 EST"
尽管时区。一天的.15
是3.6小时,因此在上面转换为UTC时,这将显示03:36:00
。
有人可能想用as.POSIXct
来代替as.Date
,但是要知道10625.15
是小数天,而不是小数秒(这是as.POSIXct
所期望的)。要做到这一点,您需要从"天"转换为"天"。以"seconds"
as.POSIXct(86400*10625.15, origin=as.Date("1990-01-01 00:00:00"))
# [1] "2019-02-02 22:36:00 EST"