Mustang51
Mustang51

Reputation: 13

Change date format with POSIXct when using an own format in r?

hey guys i have a date format like this as a string "Wed May 23 22:58:46 +0000 2019" and i need to change it into this format "%m/%d/%Y %I:%M:%S

my code looks like this:

x <- "Wed May 01 23:59:45 +0000 2019" 

xx <- as.POSIXct(x, format = "%a %b %d %H:%M:%S %z %Y")

but it does not work...

Upvotes: 1

Views: 37

Answers (1)

TarJae
TarJae

Reputation: 79246

Here is step by step stringr combined with lubridate solution wrapped in a function. In essence we bring the string x with the stringr functions to a form where we could apply lubridates mdy_hms function. Note: This solution is not elegant!

x <- "Wed May 01 23:59:45 +0000 2019"


library(lubridate)
library(stringr)
special_datetime_function <- function(x){
  x1 <- str_remove(x, "\\d{2}\\:\\d{2}\\:\\d{2}\\s\\+\\d+")
  x2 <- str_extract(x, "\\d{2}\\:\\d{2}\\:\\d{2}")
  y <- str_c(x1, x2, sep = " ")
  y1 <- str_squish(str_replace(y, "^\\S* ", ""))
  mdy_hms(y1)
}
special_datetime_function(x)
[1] "2019-05-01 23:59:45 UTC"

Upvotes: 1

Related Questions