Round timestamp to nearest day in Python
datetime, python
Solution
Sure, just convert the `datetime` to a `date` first:
sec_since_epoch = (date_obj.date() - date(1970, 1, 1)).total_seconds()
Of course `date()` truncates. If you want to round up if on or after noon, etc., just add 12 hours before truncating, or check whether the date is >= noon on the same day and if so add a day (note that these can do different things on DST boundary days), or whatever rule you want to round by.
Problem
In Python 2.7.2 I am getting the seconds since epoch using: `sec_since_epoch = (date_obj - datetime(1970, 1, 1, 0, 0)).total_seconds()` Now I want to round these seconds to the nearest day e.g. if: `datetime.fromtimestamp(sec_since_epoch)` corresponds to `datetime(2013, 12, 14, 5, 0, 0)` I want the new timestamp to correspond to `datetime(2013, 12, 14, 0, 0, 0)` I know the ugly way of doing it, but is there an elegant way ?