Create and format times
Similar to working with dates, you can use as.POSIXct()
to convert from a character string to a POSIXct
object, and format()
to convert from a POSIXct
object to a character string. Again, you have a wide variety of symbols:
%H
: hours as a decimal number (00-23)%I
: hours as a decimal number (01-12)%M
: minutes as a decimal number%S
: seconds as a decimal number%T
: shorthand notation for the typical format%H:%M:%S
%p
: AM/PM indicator
For a full list of conversion symbols, consult the strptime
documentation in the console:
?strptime
Again,as.POSIXct()
uses a default format to match character strings. In this case, it's %Y-%m-%d %H:%M:%S
. In this exercise, abstraction is made of different time zones.
This is a part of the course
“Intermediate R”
Exercise instructions
- Convert two strings that represent timestamps,
str1
andstr2
, toPOSIXct
objects calledtime1
andtime2
. - Using
format()
, create a string fromtime1
containing only the minutes. - From
time2
, extract the hours and minutes as "hours:minutes AM/PM". Refer to the assignment text above to find the correct conversion symbols!
Hands-on interactive exercise
Have a go at this exercise by completing this sample code.
# Definition of character strings representing times
str1 <- "May 23, '96 hours:23 minutes:01 seconds:45"
str2 <- "2012-3-12 14:23:08"
# Convert the strings to POSIXct objects: time1, time2
time1 <- as.POSIXct(str1, format = "%B %d, '%y hours:%H minutes:%M seconds:%S")
# Convert times to formatted strings