如何用Python将多时区指定格式当前时间导出到文本文件且兼容Python2.7
完整兼容Python2.7/3.x的多时区时间导出方案
前置依赖
- 首先安装时区处理依赖库pytz,执行命令:
pip install pytz,该库同时适配Python2.7和3.x全版本 - 提前创建
C:\temp文件夹,避免路径不存在的写入错误
完整可运行代码
# 导入依赖 from datetime import datetime import pytz # ---------------可修改配置项--------------- # 时区配置:第一项为显示名称,第二项为pytz标准时区名 TIMEZONE_LIST = [ ("UTC Time", "UTC"), ("EST Time", "EST"), ("New York Time", "America/New_York"), ("Port Moresby Time", "Pacific/Port_Moresby") ] # 输出文件路径,Windows路径加r前缀避免转义字符异常 OUTPUT_FILE_PATH = r"C:\temp\current_time.txt" # ----------------------------------------- output_content = [] for display_name, tz_name in TIMEZONE_LIST: # 获取对应时区的当前时间 current_tz = pytz.timezone(tz_name) tz_now = datetime.now(current_tz) # 按要求格式化时间 if tz_name == "UTC": # UTC输出不带AM/PM,匹配示例格式 formatted_time = "{:%A, %B %d, %Y %H:%M:%S}".format(tz_now) else: formatted_time = "{:%A, %B %d, %Y %I:%M:%S %p}".format(tz_now) output_content.append("{}: {}".format(display_name, formatted_time)) # 一次性写入文件,自动处理文件关闭 with open(OUTPUT_FILE_PATH, "w") as f: f.write("\n".join(output_content))
说明
- 修复了原文件写入代码的缺陷:原代码重复打开文件未释放资源,且路径未做转义处理导致Python3中运行报错,本方案使用with语句自动管理文件句柄,加r前缀处理Windows路径转义问题
- 所有可调整参数统一放在配置区,后续需要增减时区、修改输出路径只需修改对应配置即可,无需改动逻辑代码
- 输出格式完全匹配你给出的示例要求
内容的提问来源于stack exchange,提问作者noni
相关产品推荐
相关产品推荐

