>>> import datetime
1.获得当前日期不显示时间
>>> print(datetime.date.today())
2019-03-28
2.使用today和now获取当前日期和时间,时间精确到毫秒级
>>> print(datetime.datetime.today())
2019-03-28 20:34:05.079049
>>> print(datetime.datetime.now())
2019-03-28 20:34:11.377443
3.使用strftime()格式化时间为标准格式,strftime()可以将日期输出为我们想要的格式(要特别注意参数区分大小写)
如只输出日期:
>>> print(datetime.datetime.now().strftime('%Y-%m-%d'))
2019-03-28
若输出当前日期和时间:
>>> print(datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S'))
2019-03-28 20:41:11
若在输出日期和时间的同时还要输出星期几:%a 输出星期的简写,%A输出星期的全写
>>> print(datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S %A'))
2019-03-28 20:43:06 Thursday
>>> print(datetime.datetime.now().strftime('%Y-%m-%d %a'))
2019-03-28 Thu
输出月份:%b 简写,%B 全写
>>> print(datetime.datetime.now().strftime('%Y-%m-%d %a %B'))
2019-03-28 Thu March
4.计算倒计时:实现倒计时的方法有很多。其中一种:首先设置一个未来的时间,通过strptime对象设置未来的时间,设置的时间包括年、月、日、时、分、秒。
如:计算从现在到2020年3月31号又多少天:
import datetime
future=datetime.datetime.strptime("2020-3-31 0:0:0","%Y-%m-%d %H:%M:%S") #使用strptime设置一个未来的时间
now=datetime.datetime.now() #获取当前时间
delta=future-now #获取两时间之间的差值,(days,seconds,microseconds)
days=delta.days #获取倒计时的天数
hours=int(delta.seconds/60/60) #获取倒计时的小时数
minutes=int((delta.seconds-hours*60*60)/60) #获取倒计时的分钟数
secondes=delta.seconds-hours*60*60-minutes*60 #获取倒计时的秒数
print("当前时间:",now.strftime("%Y-%m-%d %H:%M:%S"),"距离未来时间:",future.strftime("%Y-%m-%d %H:%M:%S"))
print("还有:",days,"天,",hours,"时",minutes,"分",secondes,"秒")
#运行结果
当前时间: 2019-03-28 21:25:33 距离未来时间: 2020-03-31 00:00:00
还有: 368 天, 2 时 34 分 26 秒
5.计算过去或未来的日期:可以使用datetime模块的timedelta对象结合具体的时间对象来实现,timedelta对象可以格式化天、小时、分钟。
import datetime
now=datetime.datetime.now()
print("现在的时间:",now.strftime("%Y-%m-%d %H:%M:%S"))
futureDays1=now+datetime.timedelta(days=5) #五天后的时间)
print("五天后的时间:",futureDays1.strftime("%Y-%m-%d %H:%M:%S"))
OldDays2=now-datetime.timedelta(days=3) #三天前的时间
print("三天前的时间:",OldDays2.strftime("%Y-%m-%d %H:%M:%S"))
futureHours=now+datetime.timedelta(hours=11) #11小时后的时间
print("11小时后的时间:",futureHours.strftime("%Y-%m-%d %H:%M:%S"))
futureMinutes=now-datetime.timedelta(minutes=2999) #2999分钟前的时间
print("2999分钟前的时间:",futureMinutes.strftime("%Y-%m-%d %H:%M:%S"))
#运行结果
现在的时间: 2019-03-28 22:14:34
五天后的时间: 2019-04-02 22:14:34
三天前的时间: 2019-03-25 22:14:34
11小时后的时间: 2019-03-29 09:14:34
2999分钟前的时间: 2019-03-26 20:15:34