Convert A Decimal Day Of The Year To A Timestamp
How can I convert a decimal representation of a day in the year to a timestamp with all the parts, both the full date and the time? For example, my first decimal is 22.968530853511
Solution 1:
Use a timedelta()
object with your value as the days
parameter; add it to midnight December 31st of the previous year:
from datetime import datetime, timedelta
epoch = datetime(datetime.now().year-1, 12, 31)
result= epoch + timedelta(days=your_decimal)
Demo:
>>>from datetime import datetime, timedelta>>>epoch = datetime(datetime.now().year - 1, 12, 31)>>>epoch + timedelta(days=22.968530853511766)
datetime.datetime(2015, 1, 22, 23, 14, 41, 65743)
>>>print(epoch + timedelta(days=22.968530853511766))
2015-01-22 23:14:41.065743
A datetime
object can be formatted any number of ways with the datetime.strftime()
method; I relied on the default str()
conversion as called by print()
in the demo.
Post a Comment for "Convert A Decimal Day Of The Year To A Timestamp"