编写Python程序,处理日期和时间经常会遇到,幸好Python本身集成了很多日期、时间相关的模块,让这件繁琐的工作变的方便。本文介绍Python中功能强大的datetime模块。 datetime模块专门处理涉及时间相关的工作,比如日期、小时、分钟、秒、星期、月、年等,该模块也提供其他高级的功能,如操作时区和夏令时,同时还能够处理时间戳等。datetime模块有五个常用的类:
下面对datetime模块常用的类和函数做介绍: datetime类是datetime模块中功能最强大的类,它可以同时操作日期和时间。 1,得到当前时间,通过datetime类的一个简单函数就可以实现: #!/usr/bin/env pythonimport datetimedatetime_now = datetime.datetime.now() #now是一个类函数print(datetime_now) 输出:
2,从日期字符串中得到year和month信息 使用strptime和strftime实现字符串到datetime对象的转换, datetime_string = '2021-04-05'datetime_obj = datetime.datetime.strptime(datetime_string, '%Y-%m-%d')print(datetime_obj)print(datetime_obj.year)print(datetime_obj.month) 输出:
得到小时和分钟信息类似,因为datetime对象有hour和minute属性。 3,从日期字符串中得到星期几的信息 在上面代码的基础上,添加下面的代码: print(datetime_obj.weekday()) 输出:
0代表的就是周一,但这样不直观,通过Python的calendar模块可以让输出更直观。 import calendarprint(calendar.day_name[datetime_obj.weekday()]) 输出: Monday 4,得到当前的周是本年的第几周 为了得到这个结果,我们是不是要进行复杂的数学计算,当然不用,datetime模块已经集成了相关的函数,通过调用datetime对象的函数ioscalendar就可以。
输出: (2021, 14, 1) 上面函数输出的结果是一个三元组,其中第二个元素就是本周是今年的第几个周。 5,实现datetime对象和Unix timestamp的转换 Unix timestamp因为方便程序处理,在实际代码编写过程中经常遇到,依赖datetime模块可以非常方便地实现Unix timestamp和datetime对象的转换,
输出: Timestamp:1617626697.906258Datetime Object:2021-04-05 20:44:57.906258 6,时间跨度的计算 有时程序的判断条件依赖过去或将来的时间点,这时可以使用datetime模块的timedelta类。
输出: Today is: 2021-04-05 21:06:17.844471Date after 10 days: 2021-04-15 21:06:17.844471 总结 |
|