Incorrect Conversion of Datetime
Dear Jim,
In order to check whether I have a correct time on my system, I run:
$ timedatectl
and it gives:
Local time: Wed 2020-01-08 13:03:44 WAT
Universal time: Wed 2020-01-08 12:03:44 UTC
RTC time: Wed 2020-01-08 12:03:44
Time zone: Africa/Lagos (WAT, +0100)
System clock synchronized: yes
systemd-timesyncd.service active: yes
RTC in local TZ: no.
The time is correct as it agrees with the system time.
I don't know if there are other things I need to change.
Thank you for any suggestions.
Ogbos
On Wed, Jan 8, 2020 at 12:55 PM Ogbos Okike <giftedlife2014 at gmail.com> wrote:
Dear Jim,
Thank you for coming my assist me.
I have tried all you suggested but the same result keep coming.
I tried, for example:
dta <- read.table("Ohr1may98", col.names = c("year", "month", "day",
"hour", "counts"))
dta$year <- with( dta, ifelse(year < 50, year + 2000, year + 1900))
dta$date<-strptime(paste(dta$year,dta$month,dta$day,dta$hour),
"%Y %m %d %H")
a = dta$date
and obtained:
a
[1] "1998-01-05 14:00:00 GMT" "1998-01-05 15:00:00 GMT" [3] "1998-01-05 16:00:00 GMT" "1998-01-05 17:00:00 GMT" [5] "1998-01-05 18:00:00 GMT" "1998-01-05 19:00:00 GMT" [7] "1998-01-05 20:00:00 GMT" "1998-01-05 21:00:00 GMT" [9] "1998-01-05 22:00:00 GMT" "1998-01-05 23:00:00 GMT" [11] "1998-01-06 00:00:00 GMT" "1998-01-06 01:00:00 GMT" [13] "1998-01-06 02:00:00 GMT" "1998-01-06 03:00:00 GMT" [15] "1998-01-06 04:00:00 GMT" "1998-01-06 05:00:00 GMT" [17] "1998-01-06 06:00:00 GMT" Instead of getting AEST as in your own result, mine remains GMT. I think the problem is coming from my system or location, I am not sure. Please have a look again and advise further. Thank you. On Wed, Jan 8, 2020 at 11:05 AM Jim Lemon <drjimlemon at gmail.com> wrote:
Hi again, Small typo, should be dta$date<-strptime(paste(dta$year,dta$month,dta$day,dta$hour), "%Y %m %d %H" as I tried it both with and without the century just to check and copied the wrong line. On Wed, Jan 8, 2020 at 9:03 PM Jim Lemon <drjimlemon at gmail.com> wrote:
Hi Ogbos, I get the correct result using strptime: dta$date<-strptime(paste(dta$year,dta$month,dta$day,dta$hour), "%y %m %d %H" )
dta$date
[1] "1998-05-01 02:00:00 AEST" "1998-05-01 03:00:00 AEST" [3] "1998-05-01 04:00:00 AEST" "1998-05-01 05:00:00 AEST" [5] "1998-05-01 06:00:00 AEST" "1998-05-01 07:00:00 AEST" [7] "1998-05-01 08:00:00 AEST" "1998-05-01 09:00:00 AEST" [9] "1998-05-01 10:00:00 AEST" "1998-05-01 11:00:00 AEST" [11] "1998-05-01 12:00:00 AEST" "1998-05-01 13:00:00 AEST" [13] "1998-05-01 14:00:00 AEST" "1998-05-01 15:00:00 AEST" [15] "1998-05-01 16:00:00 AEST" "1998-05-01 17:00:00 AEST" [17] "1998-05-01 18:00:00 AEST" "1998-05-01 19:00:00 AEST" [19] "1998-05-01 20:00:00 AEST" "1998-05-01 21:00:00 AEST" [21] "1998-05-01 22:00:00 AEST" "1998-05-01 23:00:00 AEST" [23] "1998-05-02 00:00:00 AEST" "1998-05-02 01:00:00 AEST" [25] "1998-05-02 02:00:00 AEST" "1998-05-02 03:00:00 AEST" [27] "1998-05-02 04:00:00 AEST" "1998-05-02 05:00:00 AEST" [29] "1998-05-02 06:00:00 AEST" Same result with ISOdatetime(dta$year,dta$month,dta$day,dta$hour,0,0,tz="GMT") as.POSIXct(ISOdatetime(dta$year,dta$month,dta$day,dta$hour,0,0,tz="GMT")) As it should be as the lower two call strptime. I can't see from your code why the month and day are transcribed. Jim