时间与日期操作:Python中处理时间的内置函数指南
在Python中,时间和日期处理是非常常见的任务。幸运的是,Python有很多内置模块来处理这些任务。在本篇文章中,我们将介绍一些常用的内置函数来处理时间和日期。
## 时间和日期的表示
在Python中,时间和日期可以用不同的方式表示。一种表示方式是将它们表示为数字。例如,时间可以表示为小时数、分钟数和秒数,日期可以表示为年份、月份、日期等。另一种方式是将它们表示为字符串。例如,时间可以表示为'10:30:00',日期可以表示为'2020-09-01'。
无论使用哪种表示方式,Python都有相应的函数来对其进行处理。
## 时间操作
### 获取当前时间
获取当前时间是一个常见的任务。Python提供了time模块来获取当前时间。
import time current_time = time.time() print(current_time) # 输出当前时间戳(从1970年1月1日 00:00:00开始的秒数)
也可以使用datetime模块来获取当前时间。
import datetime current_time = datetime.datetime.now() print(current_time) # 输出当前时间的日期和时间
### 时间转换
在处理时间时,常常需要将时间表示为不同的格式。Python提供了strftime()函数来将时间转换为字符串。
import datetime
current_time = datetime.datetime.now()
formatted_time = current_time.strftime("%Y-%m-%d %H:%M:%S")
print(formatted_time) # 将当前时间转换为字符串表示
于是我们可以将当前时间转换为类似'2020-09-01 10:30:00'的格式。
相反的,我们需要将字符串转换为时间时,可以使用strptime()函数。
import datetime str_time = "2020-09-01 10:30:00" time_obj = datetime.datetime.strptime(str_time, "%Y-%m-%d %H:%M:%S") print(time_obj) # 将字符串转换为datetime对象
strptime()函数将字符串解析为datetime对象,需要使用对应的格式字符串来指定时间的格式。
### 时间运算
Python中可以对时间进行标准的加、减、乘、除等运算。
import datetime current_datetime = datetime.datetime.now() one_day = datetime.timedelta(days=1) yesterday = current_datetime - one_day # 昨天的现在 tomorrow = current_datetime + one_day # 明天的现在 print(yesterday) print(tomorrow)
在上面的例子中,我们使用timedelta对象来表示一个时间间隔。
### 时间戳转换
有时候,需要将时间戳(从1970年1月1日 00:00:00开始的秒数)转换为datetime对象。
import datetime unix_timestamp = 1598986448 datetime_obj = datetime.datetime.fromtimestamp(unix_timestamp) print(datetime_obj) # 输出时间戳对应的datetime对象
相反的,将datetime对象转换为时间戳也是很容易的。
import datetime datetime_obj = datetime.datetime(2020, 9, 1, 10, 30, 0) unix_timestamp = datetime_obj.timestamp() print(unix_timestamp) # 输出datetime对象对应的时间戳
## 日期操作
### 获取当前日期
获取当前日期可以使用date模块。
import datetime current_date = datetime.date.today() print(current_date) # 输出当前日期(格式为年-月-日)
### 日期转换
Python提供了strftime()函数和strptime()函数来处理日期。使用方式与时间相同。
import datetime
current_date = datetime.date.today()
formatted_date = current_date.strftime("%Y-%m-%d")
print(formatted_date) # 将当前日期转换为字符串
str_date = "2020-09-01"
date_obj = datetime.datetime.strptime(str_date, "%Y-%m-%d").date()
print(date_obj) # 将字符串转换为date对象
### 多日期操作
Python中可以对日期进行标准的加、减、乘、除等运算。它们与时间运算类似。
import datetime current_date = datetime.date.today() one_day = datetime.timedelta(days=1) yesterday = current_date - one_day # 昨天 tomorrow = current_date + one_day # 明天 next_week = current_date + datetime.timedelta(weeks=1) # 下周一
在上面的例子中,我们使用timedelta对象来表示一个时间间隔。
## 总结
这篇文章介绍了Python中处理时间和日期的常用内置函数。Python提供了丰富的时间和日期处理函数,始终能满足日常任务的需要。如果需要更高级的时间处理功能,可以使用第三方库,例如:arrow、dateutil等。
