This blog is updated daily.
A general description is here.
On platforms where (non-UTC) datetimes before 1902 (or before 1900 as with system functions on recent macOS) are guessed by extrapolating time zones from 1902-2037, there is a warning at the first use of extrapolation in a session. (As all time zones post 2037 are extrapolation, we do not warn on those.)
(Platforms using ‘--with-internal-tzone’, including Windows and by default macOS). How years are printed in dates or date-times can be controlled by environment variable ‘R_PAD_YEARS_BY_ZERO’. The default remains to pad to 4 digits by zeroes, but setting value ‘no’ gives no padding (as used by default by ‘glibc’).
‘strftime()’ tries harder to determine the offset for the ‘"%z"’ format, and succeeds on the mainstream R platforms.
‘strftime()’ has a limit of 2048 bytes on the string produced - attempting to exceed this is an error. (Previously it silently truncated at 255 bytes.)
‘sessionInfo()’ records (and by default prints) the system time zone as part of the locale information. Also, the source (system/internal) of the date-time conversion and printing functions.
Objects of class ‘"POSIXlt"’ created in this version of R always have 11 components: component ‘zone’ is always set, and component ‘gmtoff’ is set for times in UTC and usually set on the (almost all) platforms which have C-level support, otherwise is ‘NA’.
There are comprehensive validity checks on the structure of objects of class ‘"POSIXlt"’ when converting (including formatting and printing). (This avoids mis-conversions of hand-crafted objects.)
There is some support for using the native date-time routines on macOS: this is only viable on recent versions (e.g. 12.6 and 13) and does get wrong some historical changes (before 1900, during WWII). Use of ‘--with-internal-tzone’ remains the default.
On platforms where (non-UTC) datetimes before 1902 (or before 1900 as
with system functions on recent macOS) are guessed by extrapolating
time zones from 1902-2037, there is a warning at the first use of
extrapolation in a session. (As all timezones post 2037 are
extrapolation, we do not warn on those.)
(Platforms using ‘--with-internal-tzone’, including Windows and by
default macOS). How years are printed in dates or date-times can be
controlled by environment variable ‘R_PAD_YEARS_BY_ZERO’. The default
remains to pad to 4 digits by zeroes, but setting value ‘no’ gives no
padding (as used by default by ‘glibc’).
‘strftime()’ tries harder to determine the offset for the ‘"%z"’
format, and succeeds on the mainstream R platforms.
‘strftime()’ has a limit of 2048 bytes on the string produced -
attempting to exceed this is an error. (Previously it silently
truncated at 255 bytes.)
‘sessionInfo()’ records (and by default prints) the system time zone as
part of the locale information. Also the source (system/internal) of
the date-time conversion and printing functions.
Objects of class ‘"POSIXlt"’ created in thie version of R always have
11 components: component ‘zone’ is always set, and component ‘gmtoff’
is set for times in UTC and usually set on the (almost all) platforms
which have C-level support.
There is some support for using the native date-time routines on macOS:
this is only viable on recent versions (e.g. 12.6) and does get some
historical changes wrong.
There are comprehensive validity checks on the structure of objects of
class ‘"POSIXlt"’ when converting (including formatting and printing).
‘as.POSIXlt(<Date>)’ now does apply a ‘tz’ (time zone) argument, as does ‘as.POSIXct()’; partly suggested by Roland Fuß on the R-devel mailing list.