如何在Google Apps Script中编写基于时间的if条件判断语句
问题排查与解决方案
核心原因
- 时区处理错误:你没有将输入的
tradeTime转换为美国中部时间(CT,对应时区标识America/Chicago),直接使用UTC时间、本地时区时间的时间值与14点比较,结果永远不符合条件。CT存在夏令时规则,每年3-11月为UTC-5,其余时段为UTC-6,不能直接写死固定时差计算,必须通过标准时区接口转换。 - 比较逻辑错误:如果直接将完整日期时间对象与
14:00类字符串、纯小时数值比较,类型不匹配会导致判断永远返回False,始终进入else分支。 - 判断条件写反:检查if语句的比较符号是否写反,避免把
早于14点的判断误写为晚于14点。
Python 实现示例
from datetime import datetime import pytz def check_trade_time(trade_time): # 定义CT时区 ct_zone = pytz.timezone("America/Chicago") # 转换输入时间为CT时区时间 trade_time_ct = trade_time.astimezone(ct_zone) # 构造当日CT时区14点的时间对象 two_pm_ct = trade_time_ct.replace(hour=14, minute=0, second=0, microsecond=0) if trade_time_ct < two_pm_ct: return "Trade time is less than 2pm CT" else: return "Trade time is not less than 2pm CT"
电子表格实现示例(Google Sheets)
如果是在电子表格中计算,使用以下公式,需提前将tradeTime所在单元格(示例为A1)设置为日期时间格式:
=IF(TIMEVALUE(CONVERT_TZ(A1, "UTC", "America/Chicago")) < TIME(14,0,0), "早于CT下午2点", "晚于等于CT下午2点")
内容的提问来源于stack exchange,提问作者Sam
相关产品推荐
相关产品推荐

