python - python pytz检查时间是否在悉尼/墨尔本时间而不是UTC之间
问题描述
我有这张支票
if is_time_between(time(6,59,45), time(18,10)):
我想检查当前时间是否在我通过的两次之间。我想我很接近。
#from datetime import timezone, datetime, timedelta
from datetime import datetime, time
#import time
import pytz
import dateutil.parser
#from pytz import timezone
def is_time_between(begin_time, end_time):
tz = pytz.timezone('Australia/Sydney')
check_time = datetime.time(tz)
if begin_time < end_time:
return check_time >= begin_time and check_time <= end_time
else: # crosses midnight
return check_time >= begin_time or check_time <= end_time
我在使用 import 和 froms 时遇到了多个错误,但当前的错误是:
descriptor 'time' requires a 'datetime.datetime' object but received a 'Australia/Sydney'
解决方案
我发现,如果你使用这个 strftime(),你可以使用 pytz 进行转换,尽管你必须将你正在检查的东西也设为字符串以便它可以比较,否则你正在比较 str 和 datetime.time,这是一个错误
def is_time_between(begin_time, end_time, check_time=None):
# If check time is not given, default to current UTC time
tz_Aus = pytz.timezone('Australia/Sydney')
datetime_Aus = datetime.now(tz_Aus)
check_time = datetime_Aus.strftime("%H:%M:%S")
if begin_time < end_time:
return str(check_time) >= str(begin_time) and str(check_time) <= str(end_time)
else: # crosses midnight
return str(check_time) >= str(begin_time) or str(check_time) <= str(end_time)
推荐阅读
- cakephp-3.0 - 如何对同一模型同一视图的多个数据进行分页
- angular - 如何以编程方式设置 mat-table 中 mat-checkbox 的检查状态?
- cython - 如何在编译前设置程序的描述?
- python-3.x - 如何在不同的端口上运行相同的烧瓶 app.py 文件?
- rust - 返回 Rc 中的引用
> - laravel - laravel about How to get Additional Data by Yajra\DataTables (Additional Data Response)
- sqlite - 同时更新两个表,如果更新失败则回滚
- javascript - 通过库从 html/javascript 的 zip/tar 文件中引用图像,可能吗?
- python - 您能否有效地将工作日偏移量添加到日期时间数组并返回外部产品?
- sql - 重复行时的 SQL case 语句