jb/scripts/时间戳.py
2025-06-05 16:45:12 +08:00

47 lines
1.7 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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:
try:
dt = datetime.strptime(input_str, "%Y-%m-%d %H:%M:%S")
except ValueError:
dt = datetime.strptime(input_str, "%Y年%m月%d%H:%M:%S")
dt = tz.localize(dt)
return [str(int(dt.timestamp()))]
except ValueError:
return ["错误请输入有效的日期格式YYYY-MM-DD HH:MM:SS 或 YYYY年MM月DD日 HH:MM:SS"]
return ["错误:无效的转换模式"]
except Exception as e:
return [f"错误:{str(e)}"]