繁体   English   中英

Python 从日期时间输入中获取上周日的日期

[英]Python get date of the last Sunday from a datetime input

我有一个纪元时间戳,并从中创建了一个日期时间:

import datetime
epoch = 1614965596103
dt = datetime.datetime.utcfromtimestamp(epoch/1000)

我想获得上周日的日期。

但是,如果日期时间 object 代表星期天,我想返回相同的日期。

实现这一目标的最简单方法是什么?

受此启发:

idx = (dt.weekday() + 1) % 7
sun = dt - datetime.timedelta(days=idx)

你可以使用timedelta

import datetime
from datetime import timedelta

epoch = 1614965596103
dt = datetime.datetime.utcfromtimestamp(epoch/1000)

if dt.weekday() != 6:
    deltadays = 6 - dt.weekday()
    dt += timedelta(weeks=-1, days=deltadays)

print(dt)

如果是星期天, dt将保持当前日期,否则它将成为上一个星期日。

将其包装成 function:

import datetime
from datetime import timedelta

def sundayGetter(epoch):
    dt = datetime.datetime.utcfromtimestamp(epoch/1000)
    if dt.weekday() != 6:
        deltadays = 6 - dt.weekday()
        dt += timedelta(weeks=-1, days=deltadays)
    return dt

print(sundayGetter(1614454173000)) #Sat 27 Feb 2021

Output:

2021-02-21 19:29:33

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM