有点老套,但这样就可以了:
import datetime
def week(t):
if datetime.datetime(t.year, 1, 1).weekday() == 6:
# The year started with a Sunday.
incr = 0
else:
incr = 1
return int(t.strftime("%U")) + incr
ls = [datetime.datetime(2019, 1, 5), datetime.datetime(2019, 1, 6),
datetime.datetime(2019, 8, 3), datetime.datetime(2019, 8, 4),
datetime.datetime(2017, 1, 1)]
for t in ls:
print("day:", t.strftime("%Y-%m-%d %a,"), "week:", week(t))
输出:
day: 2019-01-05 Sat, week: 1
day: 2019-01-06 Sun, week: 2
day: 2019-08-03 Sat, week: 31
day: 2019-08-04 Sun, week: 32
day: 2017-01-01 Sun, week: 1