Python时间单位转换的核心技巧在于灵活运用time
和datetime
模块,结合整除、取余或divmod
函数,实现秒、毫秒与时分秒的高效互转。 以下分场景详解常用方法:
-
秒转时分秒
- 基础算术法:通过整除3600获取小时,取余后整除60得分钟,剩余为秒。例如:
python复制
seconds = 3661 hours = seconds // 3600 minutes = (seconds % 3600) // 60 remaining_seconds = seconds % 60
-
divmod
简化版:单行代码完成相同逻辑:python复制
hours, remainder = divmod(seconds, 3600) minutes, seconds = divmod(remainder, 60)
- 基础算术法:通过整除3600获取小时,取余后整除60得分钟,剩余为秒。例如:
-
毫秒处理
- 毫秒转秒需除以1000,再套用秒转时分秒逻辑。例如:
python复制
milliseconds = 1800000 total_seconds = milliseconds / 1000 hours = int(total_seconds // 3600)
- 毫秒转秒需除以1000,再套用秒转时分秒逻辑。例如:
-
时间戳与日期互转
- 时间戳转日期:使用
time.localtime()
和strftime
格式化输出:python复制
timestamp = 1728974383 time_str = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(timestamp))
- 日期转时间戳:
time.mktime
解析时间元组:python复制
time_struct = time.strptime("2024-10-15 14:39:44", "%Y-%m-%d %H:%M:%S") timestamp = int(time.mktime(time_struct))
- 时间戳转日期:使用
-
datetime
模块进阶-
timedelta
对象:直接处理时间间隔,支持自然进位:python复制
from datetime import timedelta td = timedelta(seconds=3661) print(str(td)) # 输出: 1:01:01
-
提示:根据场景选择方法——简单转换用算术或divmod
,复杂需求优先datetime
模块。批量处理时可结合生成器或并行计算提升效率。