I have data which has two columns time
and timezone
that have the timestamp of events. Examples are:
time timezone
1433848856453 10800000
It seems like the timestamp has fractional seconds in the information as well. I don't understand the timezone format but it must be an equivalent unix format. I need to preserve the fractional seconds as well. How do I go from that to something like in R?
2015-01-01 13:34:56.45 UTC
Note: This human readable date is not the actual converted values of the unix timestamp shown.
It looks like the timezone
column is the timezone offset, in milliseconds. I assume that means the timezone column will adjust for daylight saving time manually
So you should add the time
and timezone
columns before converting to POSIXct
. You should also set the tz
to "UTC"
so no DST adjustments will be made to your POSIXct
object.
R> time <- 1433848856453
R> timezone <- 10800000
R> options(digits.secs=3)
R> .POSIXct((time+timezone)/1000, tz="UTC")
[1] "2015-06-09 14:20:56.453 UTC"
I think this can be right for you.
aa <- 1433848856453
as.POSIXct(aa/1000, origin="1970-01-01")
[1] "2015-06-09 13:20:56.453 CEST"
Now I've realized that my code is not reproducible, because of my personal settings, but this can fix it and let you achieve the goal.
options(digits.secs=6)
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With