Python中的日期时间函数及用法
Python是一门被广泛使用的编程语言,其在各种应用领域都有很好的支持。在Python中,处理日期时间相关的操作非常方便,拥有常见的日期时间类库和函数,能够很好地完成各种日期时间操作。本文将详细介绍Python中的日期时间函数及用法。
1. datetime模块
Python自带的datetime模块提供了处理日期和时间的方法。它包含了datetime、date、time等类。这些类可以方便地处理日期时间的转换和计算,比如计算两个日期之间的差值,或者在给定日期基础上计算一段时间之后的日期。下面分别介绍这三个类的构造及方法。
(1)datetime.date
datetime.date类表示日期,包含年、月、日等。可以通过year、month、day属性来获取或设置对应的值。date类主要的方法有以下几种:
- date.toordinal():返回对应日期的Gregorian纪年日。即从公元1年1月1日至对应日期的天数。
- date.weekday():返回对应日期是星期几。0表示星期一,1表示星期二,依此类推。
- date.isoweekday():返回对应日期是星期几。1表示星期一,2表示星期二,依此类推。
(2)datetime.time
datetime.time类表示时间,包含小时、分、秒等属性。可以通过hour、minute、second等属性获取或设置对应的值。time类主要的方法有以下几种:
- time.isoformat():返回日期+时间的标准格式字符串。
- time.strftime(format):根据指定格式返回时间对应的字符串。format是一个类似于C语言中printf函数的字符串模板。
(3)datetime.datetime
datetime.datetime类表示日期时间,它继承了date类和time类的所有属性和方法。同时也有其他一些额外的方法,比如可以设置和获取时区信息、计算两个日期之间的差值等。
2. time模块
time模块提供了一些关于系统时间的操作。时间值以自1970年1月1日零点起经过的秒数来表示。
(1)time.time()
time.time()返回当前系统时间的秒数。
(2)time.localtime()
time.localtime([secs])将秒数转换为本地时间。如果未指定参数,则使用time.time()返回的当前系统秒数。返回的结果为一个具有以下属性的时间元组:
- tm_year:表示年份,比如2022。
- tm_mon:表示月份,1表示一月,2表示二月依此类推。
- tm_mday:表示月份中的日期,从1开始。
- tm_hour:表示小时,从0到23。
- tm_min:表示分钟,从0到59。
- tm_sec:表示秒,从0到61。
- tm_wday:表示星期几,0表示星期一,1表示星期二依此类推。
- tm_yday:表示一年中的第几天,从1开始。
- tm_isdst:表示是否开启夏令时。
(3)time.sleep()
time.sleep(secs)可以使程序暂停指定秒数,参数secs是浮点数,可以是小数。
3.calendar模块
calendar模块提供了一个日历类,能够生成各种样式的日历。calendar模块的主要函数有以下几种:
(1)calendar.month()
calendar.month(year, month, width=0)返回指定月份的月历。
(2)calendar.calendar()
calendar.calendar(year, w=2, l=1, c=6)返回指定年份的年历,w、l、c属性表示每周的宽度、行数和列数。
4.dateutil模块
dateutil模块是Python的一个第三方模块,提供了比datetime模块更加灵活的日期时间处理方法。常用的函数和类有:
(1)dateutil.parser.parse()
dateutil.parser.parse(string)可以将各种格式的字符串转换为datetime对象。在处理一些字符串类型的日期时间数据时非常有用。
(2)dateutil.relativedelta.relativedelta()
dateutil.relativedelta.relativedelta(years, months, days,…)可以用来对日期时间进行相对增减。可以指定年、月、日、小时、分钟、秒等参数来对日期时间进行操作。
(3)dateutil.tz.tzutc()
dateutil.tz.tzutc()返回UTC(协调世界时)时区的对象。
综上所述,Python中的日期时间函数和类使得我们的日期时间处理变得非常方便,能够很好地满足各种场景的需求。当我们需要对日期时间进行处理时,可以根据需求选择合适的函数和类,能够让我们的程序变得更加优雅和高效。
