Python技术问询:如何从指定时间字符串提取年/月/日等时间字段
Hey Dennis! 当然有办法啦~ Python里用标准库或者第三方工具都能轻松从这个时间字符串里提取你要的年、月、日、星期和小时信息,我给你详细讲讲两种实用方案:
方案一:用Python标准库datetime(无需额外安装)
Python自带的datetime模块里的strptime()方法可以把时间字符串解析成datetime对象,之后就能方便地提取各种时间属性了。代码示例如下:
from datetime import datetime # 你的时间字符串 time_str = "1/21/2015 01:30:22 AM" # 解析字符串:这里的格式符要和你的时间字符串格式对应 # %m → 月份(1-12,支持1位或2位) # %d → 日期(1-31) # %Y → 四位年份 # %I → 12小时制的小时(1-12) # %M → 分钟(00-59) # %S → 秒(00-59) # %p → AM/PM标记 dt_obj = datetime.strptime(time_str, "%m/%d/%Y %I:%M:%S %p") # 提取你需要的信息 year = dt_obj.year month = dt_obj.month day = dt_obj.day # 获取星期全称(比如"Wednesday"),如果要数字可以用dt_obj.weekday()(0=周一,6=周日) weekday = dt_obj.strftime("%A") # 小时会自动转为24小时制,比如1 AM就是1,1 PM就是13 hour = dt_obj.hour # 打印结果看看 print(f"年: {year}, 月: {month}, 日: {day}, 星期: {weekday}, 小时: {hour}")
运行这段代码,你就能得到对应的各个时间信息啦~
方案二:用dateutil.parser(更灵活,需额外安装)
如果觉得记格式符太麻烦,或者你的时间格式可能有变化,那可以用dateutil库的parser模块,它能自动识别绝大多数时间格式,不用手动写匹配规则。
首先得先安装这个库:
pip install python-dateutil
然后代码就很简单了:
from dateutil import parser time_str = "1/21/2015 01:30:22 AM" # 自动解析时间字符串 dt_obj = parser.parse(time_str) # 提取信息的方式和上面完全一样 year = dt_obj.year month = dt_obj.month day = dt_obj.day weekday = dt_obj.strftime("%A") hour = dt_obj.hour print(f"年: {year}, 月: {month}, 日: {day}, 星期: {weekday}, 小时: {hour}")
两种方案各有千秋:标准库方案不用额外装包,适合格式固定的场景;dateutil方案更灵活,适合格式多变的情况,你可以根据自己的需求选择~
内容的提问来源于stack exchange,提问作者dennis
相关产品推荐
相关产品推荐

