Ali
Ali

Reputation: 19

Extract two combined dates and times from a string

Could you please let me know how I can extract date and time from ("2015-08-11 03:14:00 UTC--2015-08-11 04:14:00 UTC"). Note that this string contains a time interval with two dates and two times. I would like to break it down into 4 individual strings such as Date 1, Time 1, Date 2, Time 2 and then store them in 4 separate vectors.

Thanks.

Upvotes: 0

Views: 70

Answers (2)

Tim Biegeleisen
Tim Biegeleisen

Reputation: 520918

You never mentioned whether you need functional dates and times from your input string. If you need to simply parse each portion of your timestamp then using gsub is one option.

x <- "2015-08-11 03:14:00 UTC--2015-08-11 04:14:00 UTC"
y <- unlist(strsplit(x, "--"))
dates <- sapply(y, function(x) gsub("(\\d{4}-\\d{2}-\\d{2}).*", "\\1", x))
times <- sapply(y, function(x) gsub(".*(\\d{2}:\\d{2}:\\d{2}.*)", "\\1", x))
dates
[1] "2015-08-11" "2015-08-11"
times
[1] "03:14:00 UTC" "04:14:00 UTC"

Demo here:

Rextester

Upvotes: 0

Rui Barradas
Rui Barradas

Reputation: 76402

Try the following.

x <- "2015-08-11 03:14:00 UTC--2015-08-11 04:14:00 UTC"
y <- strsplit(x, "--")[[1]]

dates <- as.Date(y)
times <- strftime(y, format = "%H:%M:%S")

Upvotes: 2

Related Questions