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
In your first email you said you were using Sys.setenv( TZ="GMT" ) in your code, which defines the default assumption for time conversion timezone (at least until you change it). Keep in mind that you may be dealing with data from other timezones than your local one that the operating system uses, so the OS timezone only gets used if TZ is blank (and even that behavior can be OS-dependent I think). Read ?OlsonNames because AEST may not be a valid specification for TZ. On January 8, 2020 4:09:01 AM PST, Ogbos Okike <giftedlife2014 at gmail.com> wrote:>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 > >______________________________________________ >R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see >https://stat.ethz.ch/mailman/listinfo/r-help >PLEASE do read the posting guide >http://www.R-project.org/posting-guide.html >and provide commented, minimal, self-contained, reproducible code.-- Sent from my phone. Please excuse my brevity.
Dear Jeff, Thank you very much for looking into this. I have made some search on ?OlsonNames. System time zones indicates Africa/Lagos whereas the data I am trying to convert are Cosmic ray data prepared at different time zones including Oulu station (Russia), Climax station (America), many parts of Europe, etc. Including: Sys.timezone() str(OlsonNames()) in my code gives: [1] "1998-01-05 02:00:00 WAT" "1998-01-05 03:00:00 WAT" [3] "1998-01-05 04:00:00 WAT" "1998-01-05 05:00:00 WAT" [5] "1998-01-05 06:00:00 WAT" "1998-01-05 07:00:00 WAT" [7] "1998-01-05 08:00:00 WAT" "1998-01-05 09:00:00 WAT" [9] "1998-01-05 10:00:00 WAT" "1998-01-05 11:00:00 WAT" [11] "1998-01-05 12:00:00 WAT" "1998-01-05 13:00:00 WAT" [13] "1998-01-05 14:00:00 WAT" "1998-01-05 15:00:00 WAT" [15] "1998-01-05 16:00:00 WAT" "1998-01-05 17:00:00 WAT" [17] "1998-01-05 18:00:00 WAT" "1998-01-05 19:00:00 WAT" [19] "1998-01-05 20:00:00 WAT" "1998-01-05 21:00:00 WAT" [21] "1998-01-05 22:00:00 WAT" "1998-01-05 23:00:00 WAT" [23] "1998-01-06 00:00:00 WAT" "1998-01-06 01:00:00 WAT" [25] "1998-01-06 02:00:00 WAT" "1998-01-06 03:00:00 WAT" [27] "1998-01-06 04:00:00 WAT" "1998-01-06 05:00:00 WAT" [29] "1998-01-06 06:00:00 WAT" Replacing the two lines above with: Sys.setenv( TZ="" ) gives: [1] "1998-01-05 02:00:00 UTC" "1998-01-05 03:00:00 UTC" [3] "1998-01-05 04:00:00 UTC" "1998-01-05 05:00:00 UTC" [5] "1998-01-05 06:00:00 UTC" "1998-01-05 07:00:00 UTC" [7] "1998-01-05 08:00:00 UTC" "1998-01-05 09:00:00 UTC" [9] "1998-01-05 10:00:00 UTC" "1998-01-05 11:00:00 UTC" [11] "1998-01-05 12:00:00 UTC" "1998-01-05 13:00:00 UTC" [13] "1998-01-05 14:00:00 UTC" "1998-01-05 15:00:00 UTC" [15] "1998-01-05 16:00:00 UTC" "1998-01-05 17:00:00 UTC" [17] "1998-01-05 18:00:00 UTC" "1998-01-05 19:00:00 UTC" [19] "1998-01-05 20:00:00 UTC" "1998-01-05 21:00:00 UTC" [21] "1998-01-05 22:00:00 UTC" "1998-01-05 23:00:00 UTC" [23] "1998-01-06 00:00:00 UTC" "1998-01-06 01:00:00 UTC" [25] "1998-01-06 02:00:00 UTC" "1998-01-06 03:00:00 UTC" [27] "1998-01-06 04:00:00 UTC" "1998-01-06 05:00:00 UTC" [29] "1998-01-06 06:00:00 UTC" All these are still not correct and I am yet longing for further help. Best regards Ogbos On Wed, Jan 8, 2020 at 4:22 PM Jeff Newmiller <jdnewmil at dcn.davis.ca.us> wrote:> > In your first email you said you were using > > Sys.setenv( TZ="GMT" ) > > in your code, which defines the default assumption for time conversion timezone (at least until you change it). Keep in mind that you may be dealing with data from other timezones than your local one that the operating system uses, so the OS timezone only gets used if TZ is blank (and even that behavior can be OS-dependent I think). > > Read > > ?OlsonNames > > because AEST may not be a valid specification for TZ. > > On January 8, 2020 4:09:01 AM PST, Ogbos Okike <giftedlife2014 at gmail.com> wrote: > >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 > > > >______________________________________________ > >R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see > >https://stat.ethz.ch/mailman/listinfo/r-help > >PLEASE do read the posting guide > >http://www.R-project.org/posting-guide.html > >and provide commented, minimal, self-contained, reproducible code. > > -- > Sent from my phone. Please excuse my brevity.