What was midnight yesterday as an epoch time?

前端 未结 7 1359
太阳男子
太阳男子 2020-12-09 03:08

I\'m trying to get my head around the datetime module. I know the time now as an epoch and the time an event last happened (as an epoch time). What I need to do is figure

7条回答
  •  春和景丽
    2020-12-09 03:43

    In the Middle of the Night

    Generating the last midnight is easy:

    from datetime import datetime, time
    
    midnight = datetime.combine(datetime.today(), time.min)
    

    That combines today's date (you can use date() or a datetime() instance, your pick), together with time.min to form a datetime object at midnight.

    Yesterday

    With a timedelta() you can calculate the previous midnight:

    from datetime import timedelta
    
    yesterday_midnight = midnight - timedelta(days=1)
    

    That Was Yesterday

    Now test if your timestamp is in between these two points:

    timestamp = datetime.fromtimestamp(some_timestamp_from_your_log)
    if yesterday_midnight <= timestamp < midnight:
        # this happened between 00:00:00 and 23:59:59 yesterday
    

    All Together Now

    Combined into one function:

    from datetime import datetime, time, timedelta
    
    def is_yesterday(timestamp):
        midnight = datetime.combine(datetime.today(), time.min)
        yesterday_midnight = midnight - timedelta(days=1)
        return yesterday_midnight <= timestamp < midnight:
    
    if is_yesterday(datetime.fromtimestamp(some_timestamp_from_your_log)):
        # ...
    

提交回复
热议问题