You need to enable JavaScript to run this app. 如何从带时区的日期时间字符串中计算距离当前时间的剩余分钟数
优惠活动
大模型
产品
解决方案
定价
更多

如何从带时区的日期时间字符串中计算距离当前时间的剩余分钟数

实现方案

现有代码问题修正

你现有代码的时区提取逻辑是硬编码匹配Central,遇到Eastern/Pacific就会失效,先把字段提取逻辑优化,同时补充时区映射、带时区时间构造的逻辑即可实现需求。
需要提前安装pytz库处理时区,安装命令:pip install pytz

完整实现步骤

  • 拆分日期、时间、时区三个字段:按|拆分原始字符串后,后半段的时间部分从最后一个空格处拆分,前面是时间文本,后面是时区标识
  • 映射美区时区到pytz可识别的时区名称:Pacific对应US/Pacific、Central对应US/Central、Eastern对应US/Eastern
  • 把日期、时间文本合并解析为原始datetime对象,再绑定对应时区
  • 获取当前对应时区的时间,二者求差值后换算为分钟数

可运行代码示例

from datetime import datetime
import pytz

# 时区映射表
TIMEZONE_MAP = {
    "Central": "US/Central",
    "Eastern": "US/Eastern",
    "Pacific": "US/Pacific"
}

date_time_string = "Tuesday, May 18, 2021  |  9:00 AM Central"
# 拆分日期和时间+时区部分
day_part, time_part = date_time_string.split("|")
day_part = day_part.strip()
time_part = time_part.strip()

# 拆分时间和时区
time_str, tz_tag = time_part.rsplit(" ", 1)
tz = pytz.timezone(TIMEZONE_MAP[tz_tag])

# 合并日期时间解析,绑定时区
target_datetime = datetime.strptime(f"{day_part} {time_str}", "%A, %B %d, %Y %I:%M %p")
target_datetime = tz.localize(target_datetime)

# 获取当前同时区时间
now_datetime = datetime.now(tz=tz)

# 计算剩余分钟,总秒数除以60取整
diff_seconds = (target_datetime - now_datetime).total_seconds()
remain_minutes = int(diff_seconds / 60)

print(f"目标时间:{target_datetime}")
print(f"当前时间:{now_datetime}")
print(f"剩余分钟数:{remain_minutes}")

结果说明

  • 如果remain_minutes为正数,代表目标时间还未到,数值就是剩余分钟数
  • 如果remain_minutes为负数,代表目标时间已经过去,绝对值是已经过去的分钟数

内容的提问来源于stack exchange,提问作者user14360522

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.20 03:24:03