【问题标题】: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" 使用 datetimepytz 模块。

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")

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-16
    • 1970-01-01
    • 2021-07-05
    • 1970-01-01
    • 1970-01-01
    • 2023-03-12
    相关资源
    最近更新 更多