41 lines
1.5 KiB
Python
41 lines
1.5 KiB
Python
from datetime import datetime
|
||
import pytz
|
||
from typing import List
|
||
|
||
def process(input_strings: List[str]) -> List[str]:
|
||
"""处理时间戳和文本的相互转换"""
|
||
try:
|
||
if len(input_strings) != 3:
|
||
return ["错误:输入格式不正确,期望 [mode, input, timezone]"]
|
||
mode, input_str, timezone = input_strings
|
||
|
||
# 验证时区
|
||
try:
|
||
tz = pytz.timezone(timezone)
|
||
except pytz.exceptions.UnknownTimeZoneError:
|
||
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)"]
|
||
|
||
else:
|
||
return ["错误:无效的转换模式"]
|
||
except Exception as e:
|
||
return [f"错误:{str(e)}"] |