Python时间类封装与运算技巧

Python 的时间类用起来其实挺方便的,但要自己封装一个好用的time类,还是有不少细节要注意。尤其是时分秒的计算、格式化,还有一些边界值,比如跨天啥的,写起来容易翻车。

自己写time类的时候,最好把构造函数写得灵活点,支持几种常见格式的初始化。比如字符串'12:30:45'、或者直接传小时分钟秒。嗯,越贴合实际越省事。

内部的话,可以统一存成总秒数,方便你做加减运算。输出再转成HH:MM:SS格式就行了。加减时间的方法,比如add_secondssubtract这些,也挺实用,别忘了溢出。

格式化输出可以加个to_string方法,最好支持自定义格式,像%H:%M%H 小时%M 分那种。以后 UI 展示的时候你会感谢自己。

如果你正好想自己写时间类练练手,这篇[时间工具类](http://www.100li.com/java/142485.html)虽然是 Java 写的,但思路通用,改成 Python 也不难。还有这篇[Python 时间序列预测](http://www.100li.com/python/47844.html),想往更复杂方向走的话也值得看看。

要是你做 Web 开发,还可以顺带看看[自定义时间选择器组件](http://www.100li.com/html5/44496.html),多时候你前后端时间格式一对不齐,就折腾。

写时间类其实也不复杂,关键是考虑清楚你要支持哪些操作。简单场景下,几十行搞定,响应也快,维护起来也舒服。如果你遇到datetime库不够灵活的场景,不如就手撸一个玩玩。

py 文件大小:372B