Cast a time point between precisionsSource:
Casting is one way to change a time point's precision.
Casting to a less precise precision will completely drop information that
is more precise than the precision that you are casting to. It does so
in a way that makes it round towards zero. When converting time points
to a less precise precision, you often want
time_point_cast(), as that handles pre-1970 dates (which are
stored as negative durations) in a more intuitive manner.
Casting to a more precise precision is done through a multiplication by a conversion factor between the current precision and the new precision.
[clock_sys_time / clock_naive_time]
A sys-time or naive-time.
A time point precision. One of:
# Hour precision time points # One is pre-1970, one is post-1970 x <- duration_hours(c(25, -25)) x <- as_naive_time(x) x #> <time_point<naive><hour>> #>  "1970-01-02T01" "1969-12-30T23" # Casting rounds the underlying duration towards 0 cast <- time_point_cast(x, "day") cast #> <time_point<naive><day>> #>  "1970-01-02" "1969-12-31" # Flooring rounds the underlying duration towards negative infinity, # which is often more intuitive for time points. # Note that the cast ends up rounding the pre-1970 date up to the next # day, while the post-1970 date is rounded down. floor <- time_point_floor(x, "day") floor #> <time_point<naive><day>> #>  "1970-01-02" "1969-12-30" # Casting to a more precise precision, hour->millisecond time_point_cast(x, "millisecond") #> <time_point<naive><millisecond>> #>  "1970-01-02T01:00:00.000" "1969-12-30T23:00:00.000"