You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将时间字符串列表转换为含距11:00 AM分钟数的嵌套列表?

时间字符串转换为嵌套列表并计算与11:00 AM的分钟差

需求说明

给定一组格式为['YYYY-MM-DD, HH:MM am/pm']的时间字符串列表,需将其转换为嵌套列表结构:外层列表的每个元素是一个子列表,子列表依次包含:

  • 日期(包裹在单元素列表中)
  • 具体时间(包裹在单元素列表中)
  • 该时间距离当日11:00 AM的分钟数(包裹在单元素列表中)

示例输入

time_list = [
    '2022-04-08, 1:05 pm',
    '2022-04-09, 4:05 pm',
    '2022-04-10, 7:08 pm',
    '2022-04-11, 7:05 pm',
    '2022-04-12, 7:05 pm',
    '2022-04-13, 7:05 pm',
    '2022-04-14, 7:05 pm',
    '2022-04-22, 7:05 pm',
    '2022-04-23, 1:05 pm',
    '2022-04-24, 1:35 pm',
    '2022-04-26, 7:05 pm',
    '2022-04-27, 7:05 pm'
]

示例输出

[
    [['2022-04-08'], ['1:05 pm'], [125]],
    [['2022-04-09'], ['4:05 pm'], [305]],
    [['2022-04-10'], ['7:08 pm'], [488]],
    [['2022-04-11'], ['7:05 pm'], [485]],
    [['2022-04-12'], ['7:05 pm'], [485]],
    [['2022-04-13'], ['7:05 pm'], [485]],
    [['2022-04-14'], ['7:05 pm'], [485]],
    [['2022-04-22'], ['7:05 pm'], [485]],
    [['2022-04-23'], ['1:05 pm'], [125]],
    [['2022-04-24'], ['1:35 pm'], [155]],
    [['2022-04-26'], ['7:05 pm'], [485]],
    [['2022-04-27'], ['7:05 pm'], [485]]
]

实现代码(Python)

from datetime import datetime

def convert_time_list(time_strings):
    result = []
    for time_str in time_strings:
        # 拆分日期和时间部分
        date_part, time_part = time_str.split(', ')
        # 解析完整时间为datetime对象
        full_time = datetime.strptime(f"{date_part} {time_part}", "%Y-%m-%d %I:%M %p")
        # 构造当日11:00 AM的datetime对象
        eleven_am = datetime.strptime(f"{date_part} 11:00 AM", "%Y-%m-%d %I:%M %p")
        # 计算时间差并转换为分钟数
        minutes_diff = int((full_time - eleven_am).total_seconds() // 60)
        # 组装嵌套列表
        result.append([[date_part], [time_part], [minutes_diff]])
    return result

# 测试示例输入
time_list = [
    '2022-04-08, 1:05 pm',
    '2022-04-09, 4:05 pm',
    '2022-04-10, 7:08 pm',
    '2022-04-11, 7:05 pm',
    '2022-04-12, 7:05 pm',
    '2022-04-13, 7:05 pm',
    '2022-04-14, 7:05 pm',
    '2022-04-22, 7:05 pm',
    '2022-04-23, 1:05 pm',
    '2022-04-24, 1:35 pm',
    '2022-04-26, 7:05 pm',
    '2022-04-27, 7:05 pm'
]

output = convert_time_list(time_list)
for item in output:
    print(item)

代码说明

  1. 拆分字符串:使用split(', ')将每个时间字符串拆分为日期和时间两部分。
  2. 时间解析:通过datetime.strptime将日期+时间的组合字符串转换为datetime对象,格式符%I处理12小时制小时数,%p识别am/pm标记。
  3. 计算时间差:构造当日11:00 AM的datetime对象,计算与目标时间的差值,通过total_seconds()转换为总秒数后除以60得到分钟数。
  4. 组装嵌套列表:按照要求将日期、时间、分钟差分别包裹在单元素列表中,再组合为外层子列表。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 15:05:30