一、datetime模块介绍
Python中处理日期和时间的主要模块是datetime。我们可以使用它来完成日期和时间的基本操作,包括创建时间对象、时间计算、时间比较和格式化输出。它提供的类有四个:datetime、date、time和timedelta。datetime包含了日期和时间;date只包含日期;time只包含时间;timedelta用来计算时间差。
# 导入datetime模块
import datetime
# 创建时间对象
now = datetime.datetime.now()
print(now)
# 创建日期对象
today = datetime.date.today()
print(today)
# 创建时间对象
t = datetime.time(hour=10, minute=30, second=50)
print(t)
# 创建时间差对象
td = datetime.timedelta(days=1, hours=2, minutes=30, seconds=10)
print(td)
二、时间计算
通过datetime模块,我们可以对时间进行各种计算,包括时间加减、求时间差、比较时间大小等。
1、时间加减
可以通过timedelta对象的加减来对时间进行加减操作:
# 时间加减
now = datetime.datetime.now()
td = datetime.timedelta(days=1, hours=2, minutes=30, seconds=10)
result = now + td
print(result)
result2 = now - td
print(result2)
2、求时间差
也可以通过timedelta对象来计算时间差,下面代码示例计算两个时间点之间的时间差:
start_time = datetime.datetime(2021, 1, 1, 0, 0, 0)
end_time = datetime.datetime(2022, 1, 1, 0, 0, 0)
delta = end_time - start_time
print(delta.days)
3、比较时间大小
比较时间大小可以使用比较运算符,下面代码示例比较两个时间点的大小:
start_time = datetime.datetime(2021, 1, 1, 0, 0, 0)
end_time = datetime.datetime(2022, 1, 1, 0, 0, 0)
if start_time < end_time:
print("start_time < end_time")
else:
print("start_time > end_time")
三、时间格式化输出
datetime模块提供了strftime()方法,可以根据指定的格式将时间对象格式化输出。格式化字符串中以%开头的字符表示输出时间的不同部分信息,例如%Y输出年份,%m输出月份,%d输出日期,%H输出小时,%M输出分钟,%S输出秒数等。下面是示例代码:
now = datetime.datetime.now()
print(now.strftime("%Y-%m-%d %H:%M:%S"))
四、时区
时区是指不同地区的标准时间,它与UTC时间的差别会随着经纬度的不同而不同。Python中可以使用pytz模块来处理时区相关操作。下面是示例代码:
import pytz
# 获取当前时间
now = datetime.datetime.now()
# 设置时区为中国
china_tz = pytz.timezone('Asia/Shanghai')
now = china_tz.localize(now)
# 转换时区
usa_tz = pytz.timezone('America/New_York')
usa_time = now.astimezone(usa_tz)
print(usa_time.strftime("%Y-%m-%d %H:%M:%S %Z%z"))
五、时间戳
时间戳是指从1970年1月1日00:00:00到某个时间点的秒数,也被称为Unix时间戳或Unix时间。Python中可以使用time模块的time()函数来获取当前时间的时间戳,也可以使用datetime模块中的timestamp()方法将时间对象转换为时间戳。下面是示例代码:
import time
# 获取当前时间的时间戳
timestamp1 = time.time()
print(timestamp1)
# 将时间对象转换为时间戳
now = datetime.datetime.now()
timestamp2 = int(now.timestamp())
print(timestamp2)