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

Python新手求助:将hhmm格式整数转换为标准时间格式

解决hhmm整数转时间格式的Python方案

嘿,作为Python新手碰到这种时间格式转换的问题太正常啦!我来给你几个简单好用的办法,不管你是处理单个值还是整列数据都能搞定。

单个值转换的两种方法

方法1:手动分割(直观易懂,适合新手理解)

这种方法一步步拆解,能让你清楚看到转换的全过程:

from datetime import time

def hhmm_int_to_time(hhmm_num):
    # 把整数转成4位字符串,不足4位的前面补0(比如95变成'0095')
    hhmm_str = f"{hhmm_num:04d}"
    # 截取前两位当小时,后两位当分钟
    hours = int(hhmm_str[:2])
    minutes = int(hhmm_str[2:])
    # 返回标准的time对象
    return time(hours, minutes)

# 测试几个例子
print(hhmm_int_to_time(1230))  # 输出:12:30:00
print(hhmm_int_to_time(95))    # 输出:00:59:00
print(hhmm_int_to_time(2359))  # 输出:23:59:00

方法2:用datetime.strptime(更简洁)

Python的datetime模块自带解析格式化字符串的方法,一行就能搞定核心转换:

from datetime import datetime

def hhmm_int_to_time(hhmm_num):
    # 先转成4位字符串,再用%H%M格式解析,最后提取time部分
    return datetime.strptime(f"{hhmm_num:04d}", "%H%M").time()

# 测试效果和上面完全一样
print(hhmm_int_to_time(1559))  # 输出:15:59:00

整列数据转换(用Pandas)

如果你是用Pandas处理表格里的整列时间数据,那效率会更高:

import pandas as pd

# 假设你的数据存在DataFrame的time_int列里
df = pd.DataFrame({'time_int': [1230, 1559, 900, 830, 2359]})

# 一步完成转换:转字符串补0 → 解析成时间 → 提取time对象
df['formatted_time'] = pd.to_datetime(
    df['time_int'].astype(str).str.zfill(4),
    format='%H%M'
).dt.time

print(df)

运行后你会得到这样的结果:

time_int formatted_time
0      1230        12:30:00
1      1559        15:59:00
2       900        09:00:00
3       830        08:30:00
4      2359        23:59:00

关键提醒

为什么一定要补前导零?因为像900这样的整数转成字符串是'900',只有3位,如果直接分割会得到小时90、分钟0,这显然是错误的!补成4位后变成'0900',才能正确分割出小时09和分钟00。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.12 04:06:59