【发布时间】:2017-10-06 04:20:11
【问题描述】:
我想根据用户当前时区获取一周中的第一天、最后一天。我正在尝试解决,但我找不到在 python.here 中继续解决的方法。例如,我采用了两个不同的时区。
from datetime import datetime, date, timedelta
from pytz import timezone
tz1 = timezone('utc')
tz2 = timezone('Asia/Kolkata')
tz3 = timezone('America/Los_Angeles')
dt1 = datetime.now(tz=tz1)
dt2 = datetime.now(tz=tz2)
dt3 = datetime.now(tz=tz3)
start_of_week = dt1+timedelta(days=0-dt1.weekday())
end_of_week = dt1+timedelta(days=6-dt1.weekday())
print(start_of_week)
print(end_of_week)
start_of_week2 = dt2+timedelta(days=0-dt2.weekday())
end_of_week2 = dt2+timedelta(days=6-dt2.weekday())
print(start_of_week2)
print(end_of_week2)
start_of_week3 = dt3+timedelta(days=0-dt3.weekday())
end_of_week3 = dt3+timedelta(days=6-dt3.weekday())
print(start_of_week3)
print(end_of_week3)
输出:
2017-10-02 09:21:32.666920+00:00
2017-10-08 09:21:32.666920+00:00
2017-10-02 14:51:32.666920+05:30 # not right
2017-10-08 14:51:32.666920+05:30 # not right
2017-10-02 02:21:32.666920-07:00 # not right
2017-10-08 02:21:32.666920-07:00 # not right
我住在Asia/kolkata,一周开始Oct 01 (Sunday),一周结束Oct 07 (Saturday),这里有什么问题?
【问题讨论】:
-
那么,您遇到了什么问题?错误,结果不好?
-
上面的代码不会首先返回,一周的最后一天它只给出周数,但我正在寻找python中可能的解决方案
-
@chakri 谢谢,但它不知道时区,天被硬编码为 timedelta
标签: python