如何将TradingView Alert的UTC时间转换为EST同步至Discord
TradingView警报UTC转EST时间的解决方法
方案一:在TradingView脚本中直接生成EST时间
TradingView的Pine Script支持时区转换,你可以在脚本里自定义EST时间变量,替代默认的{{timenow}}:
- 在你的Pine策略/指标脚本中添加时间转换代码:
// 转换为美国东部时区(自动适配夏令时EDT/EST) estTime = time(timeframe.period, "America/New_York") // 格式化为ISO标准字符串 formattedEstTime = str.tostring(estTime, "yyyy-MM-dd'T'HH:mm:ss'Z'")
- 修改警报的内容模板,把
{{timenow}}替换为自定义的变量:
{"content": "10 min RSI < 50 {{ticker}} SHORT Time ={{formattedEstTime}}"}
这样TradingView发送的警报会直接输出EST时区的时间,无需后续处理。
方案二:在Discord机器人端转换时间
如果不想改动TradingView脚本,可以在机器人收到消息后对时间字符串进行转换。以Python为例:
from datetime import datetime import pytz # 提取消息中的UTC时间字符串 utc_time_str = "2023-04-10T16:10:03Z" # 解析UTC时间 utc_time = datetime.fromisoformat(utc_time_str.replace('Z', '+00:00')) # 转换为美国东部时区 est_tz = pytz.timezone('America/New_York') est_time = utc_time.astimezone(est_tz) # 格式化为目标字符串 formatted_est = est_time.strftime("%Y-%m-%dT%H:%M:%SZ") # 替换原消息中的时间 original_msg = "10 mins RSI < 50 EURUSD SHORT Time =2023-04-10T16:10:03Z" processed_msg = original_msg.replace(utc_time_str, formatted_est)
注意事项
美国东部时间分EST(冬令时,UTC-5)和EDT(夏令时,UTC-4),使用时区标识符America/New_York会自动处理夏令时切换,比固定加减小时更准确。
内容的提问来源于stack exchange,提问作者Iwishworldpeace
相关产品推荐
相关产品推荐

