datetimeoffset 0.4.1
CRAN release: 2025-01-11
New features
-
format_iso8601()’smodeargument now supports"toml"for outputting datetimes using the subset of ISO 8601 supported by TOML v1.0.0 (#60).
Bug fixes and minor improvements
-
as_datetimeoffset.character()can now parse ISO 8601 times without associated dates (#59). -
format()andformat_iso8601()can now format times without associated dates (#59). -
format_edtf()now truncates the number of subsecond digits according to thesubsecond_digitsfield. - New
get_tz.Date()S3 method which returnsNA_character_for “Date” objects (#62). - Stops using functions deprecated in clock v0.7.0.
datetimeoffset 0.3.1
CRAN release: 2023-05-11
New features
-
format_pdfmark()has new argumentprefixthat supports"D:"or""(#57). - If you have a version of clock whose
as_sys_time()method has an...argument then the registered S3 method fordatetimeoffset()objects now supports argumentsambiguous,nonexistent, andfill(#33).
datetimeoffset 0.2.1
CRAN release: 2023-02-10
New features
-
format_exiftool()formats datetime strings as expected by the command-line toolexiftool(#54). -
as_datetimeoffset.integer()andas_datetimeoffset.numeric()coerce numeric values as the newdatetimeoffset()objectsyearfield (#53).
Bug fixes and minor improvements
-
format_iso8601()has new argumentmodewhich supports “normal” and “xmp”.- XMP metadata datetimes are a strict subset of ISO 8601 datetimes
as_datetimeoffset.character()now parses pdfmark datetimes of the formD:YYYYmmddHHMMSSZ00'00'(#56)Skip a test on CRAN which was failing on
r-oldrel-windows-ix86+x86_64(#52)
datetimeoffset 0.1.2
CRAN release: 2023-01-11
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()objectsPOSIXct()objectsPOSIXlt()objectsnanotime::nanotime()objectsparttime::parttime()objectsAny 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 stringsformat_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()objectas.POSIXct()andas_date_time()converts the datetime to abase::POSIXct()objectas.POSIXlt()converts the datetime to abase::POSIXlt()objectas.nanotime()converts the datetime to ananotime::nanotime()objectas.parttime()converts the datetime to aparttime::parttime()object-
clock calendars, times, and weekdays:
-
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
-
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
-
Additional subsecond accessors
-
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 object -
datetime_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 methods
invalid_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 extractors
date(),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().
-