You have succeeded, but you just don't know it. The POSIXct object is
representing that instant of time internally... you are just complaining about
how it is printing it. So convert it to character explicitly with the desired
format when you want to print it.
as.character( my.bastimeToSynoptic("2010-12-01 05:05:00"),
format="%Y-%m-%d %H:%M:%S" )
--
Sent from my phone. Please excuse my brevity.
On March 28, 2018 8:44:43 PM PDT, Thomas Adams <tea3rd at gmail.com>
wrote:>Hello all:
>
>I wrote a function:
>
>my.bastimeToSynoptic <- function(x) {
> f<-unlist(strsplit(as.character(x), " "))
> hr<-unlist(strsplit(f[2], ":"))
> if(as.numeric(hr[1])<6) {
> synoptic<-"00"
> }
> else {
> synoptic<-as.integer(as.numeric(hr[1])/6)*6
> }
> tdate<-paste(c(f[1],"
",as.character(synoptic),":00:00"),collapse="")
> d<-as.POSIXct(tdate, tz="EST")
> return(d)
>}
>
>This works as expected:
>
>> my.bastimeToSynoptic("2010-12-01 14:05:00")
>[1] "2010-12-01 12:00:00 EST"
>
>This does not:
>> my.bastimeToSynoptic("2010-12-01 05:05:00")
>[1] "2010-12-01 EST"
>
>I expect to get:
>"2010-12-01 00:00:00 EST"
>
>I've tried explicitly forcing the format with d<-as.POSIXct(tdate,
>tz="EST", format = "%Y-%m-%d %H:%M:%S") and I have
checked online,
>finding
>examples showing what I'm doing with as.POSIXct should work. I'm at
an
>impasse.
>
>I'm running R version 3.4.0 (2017-04-21) on Ubuntu 16.04 LTS
>
>Thank you,
>Tom
>
>
>--
>
> [[alternative HTML version deleted]]
>
>______________________________________________
>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.