Search code examples
rposixctlubridate

How to create date from datetime (using lubridate)?


Assume I have created a variable containing date and time:

a <- ymd_hms("2014-01-01 12:23:34")

How do I create another variable that only has the date? That is, what should I do to transform a's value to be identical to b's value where b is

b <- ymd("2014-01-01")

Solution

  • You can just use round_date

    round_date(a, "day")
    [1] "2014-01-02 UTC"
    

    EDIT

    You do need to be careful with rounding the time though. For complete equivalence here you would need to use floor_date.

    identical(ymd("2014-01-01"), floor_date(a, "day"))
    [1] TRUE