Python中的时间函数:datetime和time
Python中有两个主要的模块来处理时间和日期,即datetime和time。这两个模块都可以用来处理时间和日期相关的计算和操作。在本文中,我们将会介绍Python中的datetime和time模块以及它们的用法。
1. datetime模块
a. datetime模块的引入
datetime模块是Python中用于处理日期和时间的库。可以通过以下方式导入模块:
import datetime
b. datetime类
datetime模块中最常用的类是datetime类,它可以表示日期和时间的组合。它包含以下属性:
- year:年份
- month:月份
- day:日
- hour:小时
- minute:分
- second:秒
- microsecond:微秒
使用datetime类可以创建表示特定日期和时间的对象。例如,下面的代码将创建表示当前日期和时间的datetime对象:
import datetime now = datetime.datetime.now() print(now)
上述代码输出结果为:
2021-12-20 21:47:02.011304
其中,now()方法用于获取当前日期和时间,返回一个datetime对象。
除此之外,还可以使用datetime类的构造函数来创建特定日期和时间的datetime对象。例如,下面的代码将创建表示2022年1月1日0时0分0秒的datetime对象:
import datetime date = datetime.datetime(2022, 1, 1, 0, 0, 0) print(date)
上述代码输出结果为:
2022-01-01 00:00:00
c. datetime对象的操作
在datetime模块中,可以对datetime对象进行各种操作,包括日期和时间的加减、比较等。
在datetime对象上执行加法或减法操作会自动计算日期和时间。例如,下面的代码将计算10天前的日期:
import datetime now = datetime.datetime.now() ten_days_ago = now - datetime.timedelta(days=10) print(ten_days_ago)
上述代码输出结果为:
2021-12-10 21:47:02.982798
此外,在比较datetime对象时,可以使用比较运算符进行比较,例如:
import datetime
now = datetime.datetime.now()
other_date = datetime.datetime(2022, 1, 1, 0, 0, 0)
if now > other_date:
print("当前日期晚于其他日期")
else:
print("当前日期早于其他日期")
d. datetime对象的格式化输出
在将datetime对象输出到字符串时,可以使用strftime()方法对其进行格式化。该方法接受一个格式字符串作为参数,并返回一个格式化后的字符串。例如,下面的代码将以格式化后的方式输出当前日期和时间:
import datetime
now = datetime.datetime.now()
now_str = now.strftime("%Y-%m-%d %H:%M:%S")
print(now_str)
上述代码输出结果为:
2021-12-20 21:47:02
在上述代码中,"%Y-%m-%d %H:%M:%S"是一个格式化字符串,表示年份、月份、日期、小时、分钟和秒。可以根据需要自由组合生成不同的格式。
2. time模块
a. time模块的引入
time模块是Python中处理时间的另一个模块。可以通过以下方式导入模块:
import time
b. time模块的基础函数
time模块提供了许多与时间相关的基础函数。其中,最常用的三个函数是:
- time():返回当前时间的时间戳,即自1970年1月1日0时0分0秒以来的秒数
- sleep():让程序在指定的时间内暂停执行
- localtime():返回当前的本地时间,以struct_time(时间元组)的形式返回
例如,下面的代码展示了这三个函数的用法:
import time now = time.time() # 返回当前时间 time.sleep(2) # 程序暂停2秒 localtime = time.localtime() # 返回本地时间 print(now) print(localtime)
上述代码输出结果为:
1640000023.5699894 time.struct_time(tm_year=2021, tm_mon=12, tm_mday=20, tm_hour=22, tm_min=13, tm_sec=43, tm_wday=0, tm_yday=354, tm_isdst=0)
在上述代码中,time()函数返回的是当前时间的时间戳,而localtime()函数返回的是本地时间的struct_time形式。
c. time模块的高级函数
time模块还提供了更多的函数来处理时间。例如,asctime()函数可以将struct_time格式的时间转换为字符串表示,而strftime()函数则可以将时间格式化为指定的字符串形式。
例如,下面的代码将struct_time格式的时间转换为字符串表示:
import time localtime = time.localtime() print(time.asctime(localtime))
上述代码输出结果为:
Mon Dec 20 22:22:51 2021
而下面的代码则将时间格式化为指定的字符串形式:
import time
localtime = time.localtime()
time_str = time.strftime("%Y-%m-%d %H:%M:%S", localtime)
print(time_str)
上述代码输出结果为:
2021-12-20 22:26:01
在上述代码中,"%Y-%m-%d %H:%M:%S"是一个格式化字符串,用于表示年份、月份、日期、小时、分钟和秒。
总结:
Python中的datetime和time模块提供了强大的时间处理功能。datetime模块主要用于处理日期和时间的组合,而time模块则提供了更多的底层函数和高级函数来处理时间。通过强大的时间处理功能,我们可以轻松地计算、处理和格式化时间,并在应用中轻松进行时间相关的操作。
