python中时间处理主要使用的库是datetime,datetime是内置模块,不需要安装,直接使用

import datetime

datetime里面有五个类:

  • date类:表示日期的类
  • time类:表示时间的类
  • datetime类:表示时间日期的类
  • timedelta类:表示两个datetime对象的差值;
  • tzinfo类:表示时区的相关信息

python 中处理时间日期主要通过 datetime 模块和 time 模块来实现。这两个模块提供了丰富的函数和类来处理日期和时间。下面分别介绍这两个模块的基本用法。

1. datetime 模块

datetime 模块提供了处理日期和时间的类。其中,datetime 类是最常用的,它表示日期和时间。

获取当前日期和时间
from datetime import datetime  
  
now = datetime.now()  
print("当前日期和时间:", now)

#获取今天
datetime.today()
#获取指定日期
datetime.date(y,m,d)
datetime.time(h,m,s)
datetime(y,m,d,h)
#输出指定格式
print('strftime():', now.strftime("%Y-%m-%d"))
timedelta的使用
from datetime import datetime
now = datetime.now()
y = now + timedelta(days=-1) # 昨天
m = now + timedelta(days=1)  # 明天
日期时间的格式化

datetime 对象可以使用 strftime() 方法来格式化日期时间。

print(now.strftime("%Y-%m-%d %H:%M:%S"))  # 年-月-日 时:分:秒
日期时间的解析

使用 strptime() 方法可以将字符串解析为 datetime 对象。

from datetime import datetime  
  
date_string = "2023-04-01 12:00:00"  
date_time_obj = datetime.strptime(date_string, "%Y-%m-%d %H:%M:%S")  
print(date_time_obj)
日期时间的加减

datetime 对象支持加减操作,可以直接加上或减去 timedelta 对象。

from datetime import datetime, timedelta  
  
now = datetime.now()  
one_day_later = now + timedelta(days=1)  
print("一天后:", one_day_later)


2. time 模块

time 模块提供了各种与时间相关的函数。它主要用于处理时间戳(自纪元(通常是1970年1月1日)以来的秒数)。

获取当前时间戳
import time  
  
timestamp = time.time()  
print("当前时间戳:", timestamp)
将时间戳转换为本地时间
local_time = time.localtime(timestamp)  
print("本地时间:", local_time)  
  
# 转换为易读的格式  
readable_time = time.strftime("%Y-%m-%d %H:%M:%S", local_time)  
print("易读的本地时间:", readable_time)
休眠(暂停)

time.sleep() 函数可以让程序暂停执行指定的秒数。

print("开始")  
time.sleep(2)  # 暂停2秒  
print("结束")

案例

# python3
#! coding=utf8

import datetime

year,month,day= 2022,3,15

weekday = ['周一','周二','周三','周四','周五','周六','周日']

i = datetime.date(year,month,day).weekday()
print(weekday[i])


i = datetime.date(year,month,day).isoweekday()
print(weekday[i-1])


wday = datetime.date(year,month,day).strftime('%a')
print(wday)

扩展,一个用来计算农历的库

zhdate
安装
pip install zhdate
#! python3
#! encoding=utf8

from datetime import datetime
import zhdate

'''
pip install zhdate
计算农历, 公历和农历的转换
内置1900-2100的农历数据
'''

date_now = zhdate.ZhDate.today()
print(date_now)

date_1 = zhdate.ZhDate(2022,1,1)
print(date_1)

date_2 = date_1.to_datetime()
print(date_2.date())

#计算距离端午节还有几天
zhdwj = zhdate.ZhDate(2022,5,5)
dwj = zhdwj.to_datetime()
now_day = datetime.now()
total = dwj.toordinal() - now_day.toordinal()
print(f'今天{now_day.strftime("%Y-%m-%d")}距离{zhdwj.chinese()}-端午节还有{total}天')


总结

  • datetime 模块主要用于处理日期和时间,提供了丰富的类和方法来创建、解析、格式化日期时间对象,以及进行日期时间的加减运算。
  • time 模块主要用于处理时间戳,提供了将时间戳转换为本地时间、休眠等功能。
08-09 08:16