函数计算默认使用的是 UTC 时间,而非当前时区时间。如果希望获取当前时区时间,需要在代码中显式地指定时区。
你所提到的设置环境变量 tz 是正确的方法之一,可以尝试将环境变量 TZ 设置为当前时区的字符串表示,例如中国标准时间为 "Asia/Shanghai",美国东部时间为 "America/New_York"。但需要注意的是,不同的操作系统或语言,对环境变量 TZ 的支持可能存在一些差异,也可能存在一些特定的编码格式要求,需要仔细查阅相关文档。
如果设置了 TZ 环境变量仍然无法获得正确的时区时间,可能是函数计算内部某些系统时间设置不正确造成的,这时可以通过向函数代码传递特定的参数来调整时区设置。具体来说,可以在代码中通过以下方式创建时间对象:
import datetime
import pytz
# 利用 pytz 模块获取指定时区的时区对象
tz = pytz.timezone('Asia/Shanghai')
# 创建当前机器本地时间对应的时区时间对象
now = datetime.datetime.now(tz)
这样即可获得正确的本地时间。需要注意的是,pytz 模块需要安装后才能使用,可以通过 pip 安装。此外,还可以根据具体需求,使用 python 内建的 datetime 模块提供的一系列时间处理功能进行进一步的时间转换和计算。