【问题标题】:how to set timezone in local variable using python?如何使用python在局部变量中设置时区?
【发布时间】:2022-02-01 06:40:22
【问题描述】:
我正在尝试读取作为费用汇总报告的 s3 文件,现在我正在尝试检查报告是否存在以及报告是否早于指定时间(可配置)并返回布尔值
我的代码如下所示,
import boto3
import json
import os
BUCKET_NAME = os.getenv('')
KEY = os.getenv('')
def send_notification():
report = get_report()
print(bool(report))
print(report)
def get_report():
s3_client = boto3.client('s3')
response = s3_client.get_object(Bucket=BUCKET_NAME, Key=KEY)
data = response['Body'].read()
report = json.loads(data)
return report
我需要在本地设置一个时间,并将其与费用汇总报告上的日期进行比较,然后返回一个布尔值。请寻求某人的帮助。提前致谢。
【问题讨论】:
标签:
python
amazon-web-services
amazon-s3
timezone
boolean
【解决方案1】:
假设您有一个dates 列。您可以将时间转换为所需的时区,例如"America/Los_Angeles" 使用 datetime 和 pytz 模块。
import datetime as dt
import pytz
dates = ["2017-01-01 14:00:00","2017-01-01 14:00:00", "2017-01-01 14:00:00","2017-01-01 14:30:00"]
for d in dates:
start = dt.datetime.strptime(d, "%Y-%m-%d %H:%M:%S")
start = start.replace(tzinfo=pytz.utc)
local_tz = pytz.timezone("America/Los_Angeles") # convert to desired timezone
要检查时间是否大于任何特定时间,比如 9 点,请使用:
utc = pytz.utc
loc_dt = utc.localize(datetime.datetime.today().replace(hour=9, minute=0))
today = utc.localize(datetime.datetime.today())
if loc_dt < today:
print("True")