Python中的日期时间函数:日期时间的表示和计算方法
Python 中的日期和时间函数大致分为以下三类:表示日期时间的标准库模块、用于日期时间运算的第三方库和日期时间格式化函数。
1、表示日期时间的标准库模块
Python 中表示日期时间的标准库模块有两个主要的模块,一个是datetime(日期时间),一个是time(时间)。
1.1、datetime 模块:
datetime模块可以方便地处理日期和时间,通常用于计算时间差、字符串转日期,日期格式化等。
datetime.datetime对象表示一个时间点,包含年、月、日、时、分、秒、微秒信息,这些属性中只有年、月和日是必要的。
# 导入datetime模块
from datetime import datetime
# 获取当前时间
now = datetime.now()
print(now)
print(type(now))
输出:
2020-11-28 12:00:00.000000
<class 'datetime.datetime'>
1.2、time 模块:
time模块用于处理时间和日期,通常用于休眠和延迟等功能。
time.time()函数可以返回当前时间的时间戳。 时间戳是一个浮点数,表示自1970年1月1日00:00:00(UTC)以来的秒数。
# 导入time模块
import time
# 获取当前时间戳
timestamp = time.time()
print(timestamp)
输出:
1606484138.7450314
2、用于日期时间运算的第三方库
2.1、dateutil 模块:
dateutil模块是Python的第三方库,是datetime标准库的扩展,用于处理跨越时区、夏令时调整、日期计算和日期字符串解析等任务。
# 导入dateutil模块
import dateutil
# 获取两个日期之间相差的天数
date1 = dateutil.parser.parse('2020-11-28')
date2 = dateutil.parser.parse('2020-11-21')
delta = (date1 - date2).days
print(delta)
输出:
7
2.2、Arrow 模块:
Arrow是一个Python的第三方库,是用来处理日期时间的一个模块,可以方便地对日期时间进行计算、格式化和转换等操作。
# 导入Arrow模块
import arrow
# 获取当前时间
now = arrow.now()
print(now)
# 将时间转换为北京时间
bj_time = now.to('Asia/Shanghai')
print(bj_time)
输出:
2020-11-28T12:30:00.068459+07:00
2020-11-28T15:30:00.068459+08:00
3、日期时间格式化函数
Python中有许多函数可以用于将日期时间格式化为字符串或将字符串解析为日期时间对象。
3.1、strftime()函数
strftime()函数可以将日期时间对象格式化为字符串。通过使用不同的格式代码,可以指定要显示的日期时间的不同部分。
# 导入datetime模块
from datetime import datetime
# 获取当前时间
now = datetime.now()
# 将时间对象格式化为字符串
formatted_time = now.strftime("%Y-%m-%d %H:%M:%S")
print(formatted_time)
输出:
2020-11-28 12:00:00
3.2、strptime()函数
strptime()函数与strftime()函数正好相反,它将字符串解析成一个datetime对象。
# 导入datetime模块
from datetime import datetime
# 解析字符串为时间对象
date_str = '2020-11-28 12:00:00'
date_obj = datetime.strptime(date_str, '%Y-%m-%d %H:%M:%S')
print(date_obj)
输出:
2020-11-28 12:00:00
总结:
日期时间的表示和计算方法在Python中得到了很好的支持。datetime、time、dateutil和Arrow等模块为我们提供了丰富的日期时间操作函数,可以使得我们在编写程序时更加简单。同时,strftime()和strptime()函数也为我们提供了方便的日期格式化和解析工具。
