如何在Python中从指定日期字符串提取小时和分钟
提取ISO格式时间字符串中的小时和分钟
针对你给出的ISO 8601格式时间字符串,这里有几种优雅的处理方式:
方法一:用datetime模块解析(最鲁棒)
这是最推荐的方式,遵循标准时间格式规范,不会因格式细微变动出错:
from datetime import datetime time_str = "2023-07-03T14:30:00.000Z" # 将末尾的Z替换为+00:00,适配fromisoformat的时区解析 dt_obj = datetime.fromisoformat(time_str.replace("Z", "+00:00")) hour = dt_obj.hour minute = dt_obj.minute print(f"小时:{hour},分钟:{minute}")
解析后可直接通过datetime对象的hour和minute属性获取对应值,还能方便扩展处理其他时间字段。
方法二:字符串切片(格式固定时最简洁)
如果能确保字符串格式永远是YYYY-MM-DDTHH:MM:SS.fffZ,直接切片提取效率最高:
time_str = "2023-07-03T14:30:00.000Z" # 提取HH:MM部分 hour_minute = time_str[11:16] # 或者分开提取小时和分钟 hour = time_str[11:13] minute = time_str[14:16] print(f"小时:{hour},分钟:{minute}")
这种方法代码最短,但仅适用于格式完全固定的场景,一旦时间字符串格式变化(比如时区标识改变)就会失效。
方法三:用strptime指定格式解析
和fromisoformat类似,通过手动指定格式字符串来解析:
from datetime import datetime time_str = "2023-07-03T14:30:00.000Z" dt_obj = datetime.strptime(time_str, "%Y-%m-%dT%H:%M:%S.%fZ") hour = dt_obj.hour minute = dt_obj.minute print(f"小时:{hour},分钟:{minute}")
这种方式需要准确匹配格式符,适合需要自定义解析规则的场景。
总结
如果追求通用性和鲁棒性,优先选方法一;如果是格式完全固定的简单场景,方法二更简洁。
内容的提问来源于stack exchange,提问作者edn
相关产品推荐
相关产品推荐

