Python 2.7 检查服务器当前时区是否已启用DST
我试图构建一个python脚本,将一些服务器指标导出到logstash。我似乎无法使它在启用夏令时的不同时区工作。无论是否启用DST,代码都会在同一时间返回。我目前的代码是:Python 2.7 检查服务器当前时区是否已启用DST,python-2.7,Python 2.7,我试图构建一个python脚本,将一些服务器指标导出到logstash。我似乎无法使它在启用夏令时的不同时区工作。无论是否启用DST,代码都会在同一时间返回。我目前的代码是: def get_formatted_tz(): tz = str.format('{0:05.2f}', float(time.timezone) / 3600 - time.daylight).replace('.', ':') return '-' + tz if time.timezone >
def get_formatted_tz():
tz = str.format('{0:05.2f}', float(time.timezone) / 3600 - time.daylight).replace('.', ':')
return '-' + tz if time.timezone > 0 else '+' + tz
我这样调用函数:
formatted = time.strftime('%Y-%m-%dT%H:%M:%S')
tz = self.get_formatted_tz()
isodate = formatted + tz
我该如何改进这一点?非常感谢您的帮助 再四处搜索一下,找到了答案。我只使用时间库,现在我使用日期时间 ISO-8601的本地标准:
import datetime
datetime.datetime.now().isoformat()
import datetime
datetime.datetime.utcnow().isoformat()
UTC至ISO-8601:
import datetime
datetime.datetime.now().isoformat()
import datetime
datetime.datetime.utcnow().isoformat()
我发现了一个与你的问题无关的问题。。。通过将
替换为:
,将浮点转换为时间。那不是你想要的。至于您实际询问的问题,请提供一个示例来说明不希望出现的行为。@glibdud我是python的初学者,必须以ISO8601格式导出时间。我无法单独使用时间库来实现这一点,因此我最终进行了这种黑客转换。例如:我的服务器当前处于BRST(UTC-2/巴西节约时间),但导出的时间始终为BRT(UTC-3/巴西时间)