Search code examples
rdatedatetimetimeformat

Convert decimal day to HH:MM


I have a vector of decimal numbers, which represent 'decimal day', the fraction of a day. I want to convert it into HH:MM format using R.

For example, the number 0.8541667 would correspond to 20:30. How can I convert the numbers to HH:MM format?


Solution

  • Try this:

    R> format(as.POSIXct(Sys.Date() + 0.8541667), "%H:%M", tz="UTC")
    [1] "20:30"
    R> 
    

    We start with a date--which can be any date, so we use today--and add your desired fractional day.

    We then convert the Date type into a Datetime object.

    Finally, we format the hour and minute part of the Datetime object, ensuring that UTC is used for the timezone.