关于Python 中的时间处理包datetime和arrow的方法详解
简介
在Python中,时间处理是一个非常重要的功能,同时也比较复杂,因为时间的格式和处理方法多种多样。为了方便开发人员处理时间,Python提供了一些时间处理的包,其中比较常用的就是datetime和arrow。下面就详细介绍一下这两个包的方法和使用技巧。
datetime
基础使用
datetime是Python中提供的处理时间的标准库,它提供了datetime、date、time、timedelta四个类。datetime类包含了日期和时间的信息,date类只包含日期的信息,time类只包含时间的信息,timedelta类用于计算时间的差值。
from datetime import datetime, date, time, timedelta
# 获取当前日期时间
now = datetime.now()
print(now) # 输出:2021-12-20 13:37:00.123456
# 获取日期
today = date.today()
print(today) # 输出:2021-12-20
# 获取时间
now_time = now.time()
print(now_time) # 输出:13:37:00.123456
# 时间差值计算
one_day = timedelta(days=1)
yesterday = today - one_day
print(yesterday) # 输出:2021-12-19
字符串转换
在实际开发中,我们通常需要将字符串类型的时间转换为datetime类型,可以使用datetime中的strptime()方法。同样,我们也可以将datetime类型转换为字符串类型,使用strftime()方法。
# 字符串转为datetime
str_time = '2021-12-19 12:34:56'
dt = datetime.strptime(str_time, '%Y-%m-%d %H:%M:%S')
print(dt) # 输出:2021-12-19 12:34:56
# datetime转为字符串
str_time = dt.strftime('%Y-%m-%d %H:%M:%S')
print(str_time) # 输出:2021-12-19 12:34:56
时间运算
datetime中可以通过加减法进行时间运算。datetime支持时间增加或减少年、月、日、小时、分钟、秒、微秒等,其中date和time类也可以使用这种方式进行时间运算。
# 时间增加
now = datetime.now()
one_day = timedelta(days=1)
tomorrow = now + one_day
print(tomorrow) # 输出:2021-12-21 13:37:00.123456
# 时间减少
two_days = timedelta(days=2)
day_before_yesterday = today - two_days
print(day_before_yesterday) # 输出:2021-12-18
# 时间差
diff = tomorrow - now
print(diff) # 输出:1 day, 0:00:00.000000
arrow
基础使用
arrow是Python中比较新的时间处理库,它比datetime更加易用和强大。arrow提供了arrow类型,包含日期和时间、时区信息和各种操作方法。
import arrow
# 获取当前日期时间
now = arrow.utcnow()
print(now) # 输出:2021-12-20T13:37:00.123456+00:00
# 获取日期
today = arrow.now().date()
print(today) # 输出:2021-12-20
# 获取时间
now_time = now.time()
print(now_time) # 输出:13:37:00.123456+00:00
字符串转换
使用arrow将字符串转换为时间类型非常简单,使用parse()方法进行转换即可,同时,我们也可以将arrow类型转换为字符串类型,使用format()方法。
# 字符串转为arrow
str_time = '2021-12-19 12:34:56'
ar = arrow.get(str_time, 'YYYY-MM-DD HH:mm:ss')
print(ar) # 输出:2021-12-19T12:34:56+00:00
# arrow转为字符串
str_time = ar.format('YYYY-MM-DD HH:mm:ss')
print(str_time) # 输出:2021-12-19 12:34:56
时间运算
arrow也支持时间的加减法运算,通过使用shift()方法实现,可以进行时间增加或减少年、月、日、小时、分钟、秒、微秒等运算。
# 时间增加
now = arrow.utcnow()
tomorrow = now.shift(days=1)
print(tomorrow) # 输出:2021-12-21T13:37:00.123456+00:00
# 时间减少
day_before_yesterday = now.shift(days=-2)
print(day_before_yesterday) # 输出:2021-12-18T13:37:00.123456+00:00
# 时间差
diff = tomorrow - now
print(diff) # 输出:86400 seconds
总结
以上就是Python中两个常用的时间处理库datetime和arrow的方法和使用技巧,我们可以根据项目需求选择不同的库进行处理,以达到最佳的效果。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:关于Python 中的时间处理包datetime和arrow的方法详解 - Python技术站