版权声明:未经博主允许不得转载。 https://blog.csdn.net/qq_43774897/article/details/88924864
datetime模块分成三个大部分,其中:
1. datetime.date : date部分只含有年 月 日信息。
2. datetime.time : time部分只含有时 分 秒 微秒。
3. datetime.datetime : datetime部分包含date 和 time 两部分,也就是包含年 月 日 时 分 秒 微秒。
一.datetime.date
1.1 创建自定义日期
注意:个位数的月和日前面不要加0
import datetime
d = datetime.date(2018,9,24)
print(d)
2018-09-24
1.2 获取本地时间
tday = datetime.date.today()
print(tday)
2019-03-31
分别获取本地时间的年,月,日,周
print(tday.year)# 获取年
2019
print(tday.month)# 获取月
3
print(tday.day)# 获取日
31
print(tday.weekday())# 获取星期几,0-6代表周一到周天
6
print(tday.isoweekday())# 获取星期几,1-7代表周一到周天
7
1.3 datetime.timedelta方法可以对时间进行运算操作
datetime.date对象 = datetime.date对象 ± datetime.timedelta对象
计算明天日期
import datetime
# 获得本地日期
tday = datetime.date.today()
# 定义操作时间 day=7 也就是可以对另一个时间对象加7天或者减少7点
tdelta = datetime.timedelta(days=7)
# 打印今天的日期
print('今天的日期:{}'.format(tday))
# 打印七天后的日期
print('从今天向前推7天:{}'.format(tday + tdelta))
今天的日期:2019-03-31
从今天向前推7天:2019-04-07
也可以直接从datetime里导入datetime和timedelta来操作
from datetime import datetime
from datetime import timedelta
now = datetime.now()
aDay = timedelta(days=1) #主要控制days这个参数计算日期
now = now + aDay
print(now.strftime('%Y-%m-%d')) #转换时间格式
2019-04-01
now = datetime.now()
aDay = timedelta(days=-1) #计算昨天日期
now = now + aDay
print(now.strftime('%Y-%m-%d'))
2019-03-30
1.4 计算某日离今日有多少天
扫描二维码关注公众号,回复:
5720992 查看本文章
bday = datetime.date(2001,1,24) #开始日期
tday = datetime.date.today() # 今天的日期
days = bday - tday
print('开始日期:{}'.format(bday))
print('今天的日期:{}'.format(tday))
print('隔了{}'.format(days))
开始日期:2001-01-24
今天的日期:2019-03-31
隔了-6640 days, 0:00:00
二.datetime.time
t = datetime.time(9, 30, 45, 100000)
print(t)
09:30:45.100000
分别获取datetime.time对象的 小时 分钟 秒 微秒
print(t.hour)
print(t.minute)
print(t.second)
print(t.microsecond)
9
30
45
100000
三.datetime.datetime
如果我们想用 年 月 日 小时 分钟 秒 微秒
这样的日期时间
,这时候就需要datetime.datetime对象出场啦
import datetime
dt = datetime.datetime(2016, 7, 26, 12, 30, 45, 100000)
print(dt)
2018-07-26 12:30:45.100000
print(dt.date()) #获得datetime.date对象
2018-07-26
print(dt.time()) 获得datetime.time对象
12:30:45.100000
# 等价于
from datetime import datetime
dt = datetime(2018, 7, 26, 12, 30, 45, 100000)
print(dt)
2018-07-26 12:30:45.100000
print(dt.date()) #获得datetime.date对象
2018-07-26
print(dt.time()) 获得datetime.time对象
12:30:45.100000
datetime.datetime对象遵循着之前的运算法则
datetime.timedelta
对象 = datetime.datetime
对象 ± datetime.datetime
对象
import datetime
dt = datetime.datetime(2018, 9, 7, 21, 28, 45, 100000)
tdelta = datetime.timedelta(days=12)
print(dt + tdelta)
2018-09-19 21:28:45.100000