datetimeoffset 0.1.2
Initial features
-
datetimeoffset()objects-
A
{vctrs}"record" object that supports datetimes with optional UTC offsets and/or (possibly heteregeneous) time zones- Suitable for use as a column in data frames and tibbles
- Separate
{vctrs}accessible record "fields" for year, month, day, hour,
minute, second, nanosecond, hour_offset, minute_offset, and time zone all of which
can be missing except year and can all be accessed by{clock}(style)
accessor functions.
If suggested{lubridate}is installed can also use{lubridate}accessors/extractors. - Non-missing time zones need not all be the same value
-
Supports lossless import/export of pdfmark datetime strings and a decent subset of
ISO 8601 datetime strings even when datetime elements are unknown
-
-
as_datetimeoffset()converts from standard datetime strings and from other R datetime objects:-
All pdfmark datetime strings
-
Decent subset of ISO 8601 datetime strings
- Also supports the extension of specifying a named time zone at the end surrounded in brackets.
-
The datetime strings understood by the default
tryFormatsofas.POSIXlt() -
Date()objects -
POSIXct()objects -
POSIXlt()objects -
nanotime::nanotime()objects -
parttime::parttime()objects -
five
{clock}calendars and three{clock}times -
Any other datetime objects with an
as.POSIXct()method
-
-
Support for formatting output strings:
-
format()returns RFC 3339 with de facto time zone extension strings -
format_edtf()returns Extended Date Time Format (EDTF) strings- Supports unofficial extensions of "Unspecified Digit" feature to time components and time zones
format_edtf(x, precision = "nanosecond", usetz = TRUE)prints out all information
-
format_iso8601()andlubridate::format_ISO8601()returns ISO 8601 strings -
format_pdfmark()returns pdfmark datetimes strings -
format_nanotime()allows CCTZ style formatting- Can output SQL Server / ODBC datetime literals
-
format_strftime()allowsbase::strftime()style formatting
-
-
Support for converting to other R datetime objects:
-
as.Date()andas_date()converts the local date to abase::Date()object -
as.POSIXct()andas_date_time()converts the datetime to abase::POSIXct()object -
as.POSIXlt()converts the datetime to abase::POSIXlt()object -
as.nanotime()converts the datetime to ananotime::nanotime()object -
as.parttime()converts the datetime to aparttime::parttime()object -
{clock}calendars, times, and weekdays:as_iso_year_week_day(),as_year_day(),as_year_month_day(),as_year_month_weekday(),as_year_quarter_day()as_naive_time(),as_sys_time(),as_zoned_time()as_weekday()
-
-
Support for several accessor S3 methods from
{clock}get_year()andset_year()get_month()andset_month()get_day()andset_day()get_hour()andset_hour()get_minute()andset_minute()get_second()andset_second()get_nanosecond()andset_nanosecond()
-
Support for several accessor methods from
{lubridate}year()andyear()<-month()andmonth()<-day()andday()<-hour()andhour()<-minute()andminute()<-second()andsecond()<-tz()andtz()<-
-
New accessor S3 methods:
get_subsecond_digits()andset_subsecond_digits()get_hour_offset()andset_hour_offset()get_minute_offset()andset_minute_offset()get_tz()andset_tz()(changes system time, not clock time)
-
Get/set datetime "precision" S3 methods
datetime_cast()datetime_narrow()datetime_precision()datetime_widen()
-
Additional subsecond accessors
get_millisecond()andset_millisecond()get_microsecond()andset_microsecond()get_subsecond()andset_subsecond()
-
Other utilities:
datetimeoffset_now()returns the current time in the corresponding time zone(s).is_datetimeoffset()andNA_datetimeoffset_fill_tz()andfill_utc_offsets()fill in missing time zones and missing UTC offsets respectively.mode_tz()is an S3 method that gets most common time zone for a datetime objectdatetime_at_tz()can be used to change the timezone
(changes clock time, not system time).get_utc_offsets()andset_utc_offsets()gets/sets UTC offset strings- Support for
{clock}invalid datetime methodsinvalid_detect(),invalid_any(),
invalid_count(),invalid_remove(), andinvalid_resolve(). precision_to_int()converts datetime precisions to an integer- Support for
{base}datetime extractorsweekdays(),months(),quarters(), andjulian() - Support for
{lubridate}datetime extractorsdate(),date()<-,isoyear(),epiyear(),
quarter(),semester(),week(),isoweek(),epiweek(),
qday(),qday<-(),wday(),wday<-(),yday(),yday<-(),
am(),pm(),days_in_month(),dst(), andleap_year(). - Support for
{lubridate}force_tz()andwith_tz().