from datetime import datetime import pytz from typing import List # 预缓存常用时区 TIMEZONE_CACHE = { "Asia/Shanghai": pytz.timezone("Asia/Shanghai"), "UTC": pytz.timezone("UTC"), "America/New_York": pytz.timezone("America/New_York"), "Europe/London": pytz.timezone("Europe/London"), "Australia/Sydney": pytz.timezone("Australia/Sydney") } def process(input_strings: List[str]) -> List[str]: """处理时间戳和文本的相互转换""" try: if len(input_strings) != 3: return ["错误:输入格式不正确,期望 [mode, input, timezone]"] mode, input_str, timezone = input_strings # 从缓存获取时区 tz = TIMEZONE_CACHE.get(timezone) if not tz: return ["错误:无效的时区"] if mode == "timestamp_to_text": try: timestamp = int(input_str) dt = datetime.fromtimestamp(timestamp, tz=tz) return [dt.strftime("%Y-%m-%d %H:%M:%S %Z")] except ValueError: return ["错误:请输入有效的时间戳"] elif mode == "text_to_timestamp": try: # 检查是否以 UTC 结尾 input_str = input_str.strip() use_utc = input_str.endswith(" UTC") if use_utc: input_str = input_str[:-4].strip() # 移除 " UTC" tz = TIMEZONE_CACHE["UTC"] # 强制使用 UTC 时区 # 尝试解析三种格式 try: dt = datetime.strptime(input_str, "%Y-%m-%d %H:%M:%S") except ValueError: try: dt = datetime.strptime(input_str, "%Y年%m月%d日 %H:%M:%S") except ValueError: # 解析新格式:MMM-DD-YYYY HH:MM:SS AM/PM dt = datetime.strptime(input_str, "%b-%d-%Y %I:%M:%S %p") dt = tz.localize(dt) return [str(int(dt.timestamp()))] except ValueError: return ["错误:请输入有效的日期格式(YYYY-MM-DD HH:MM:SS 或 YYYY年MM月DD日 HH:MM:SS 或 MMM-DD-YYYY HH:MM:SS AM/PM)"] return ["错误:无效的转换模式"] except Exception as e: return [f"错误:{str(e)}"]