1、获取一个datetime的年、月、日
from datetime import datetime
now_date = datetime.now()
print(now_date.year)
print(now_date.month)
print(now_date.day)
2、将日期转化为字符串的格式的函数:datetime.datetime.strftime(format[, t]),举例:
from datetime import datetime
now_date = datetime.now()
print('时间:(%Y-%m-%d %H:%M:%S %f):', now_date.strftime('%Y-%m-%d %H:%M:%S %f'))
print('时间:(%Y-%m-%d %H:%M:%S %p): ',now_date.strftime('%y-%m-%d %I:%M:%S %p'))
print('星期缩写%%a:%s'%now_date.strftime('%a'))
print('星期全拼%%A:%s'%now_date.strftime('%A'))
print('月份缩写%%b:%s'%now_date.strftime('%b'))
print('月份全写%%B:%s'%now_date.strftime('%B'))
print('日期时间%%c:%s'%now_date.strftime('%c'))
print('今天是这周的第%s天'%now_date.strftime('%w'))
print('今天是今年的第%s天'%now_date.strftime('%j'))
print('今周是今年的第%s天'%now_date.strftime('%U'))
print('今天是当月的第%s天'%now_date.strftime('%d'))
运行结果:
时间:(%Y-%m-%d %H:%M:%S %f): 2020-05-08 11:27:15 682767
时间:(%Y-%m-%d %H:%M:%S %p): 20-05-08 11:27:15 AM
星期缩写%a:Fri
星期全拼%A:Friday
月份缩写%b:May
月份全写%B:May
日期时间%c:Fri May 8 11:27:15 2020
今天是这周的第5天
今天是今年的第129天
今周是今年的第18天
今天是当月的第08天
3、将字符串格式转化为日期格式的函数:datetime.datetime.strptime(string[, format]),举例:
print(datetime.strptime('20200508','%Y%m%d'))
print(datetime.strptime('Sep-21-09 16:34','%b-%d-%y %H:%M'))
运行结果:
2020-05-08 00:00:00
2009-09-21 16:34:00
4、datetime 相加减:
datetime 加减可以直接使用 + 和 - ,需要导入timedelta类,这个类的对象用于表示一个时间间隔,举例:
构造方法:
datetime.timedelta(days=0, seconds=0, microseconds=0, milliseconds=0, minutes=0, hours=0, weeks=0)
所有的参数都有默认值0,这些参数可以是int或float,正的或负的。
可以通过timedelta.days、tiemdelta.seconds等获取相应的时间值。
timedelta类的实例,支持加、减、乘、除等操作,所得的结果也是timedelta类的实例。
year = timedelta(days=365)
ten_years = year *10
nine_years = ten_years - year
date、time和datetime类也支持与timedelta的加、减运算,比如:
datetime1 = datetime2 +/- timedelta
timedelta = datetime1 - datetime2
其他示例:
1、两个日期相差多少
d1 = datetime.datetime.strptime('2012-03-05 17:41:20', '%Y-%m-%d %H:%M:%S')
d2 = datetime.datetime.strptime('2012-03-02 17:41:20', '%Y-%m-%d %H:%M:%S')
delta = d1 - d2
print delta.days
2、今天的 n 天后的日期
now = datetime.datetime.now()
delta = datetime.timedelta(days=3)
n_days = now + delta
print n_days.strftime('%Y-%m-%d %H:%M:%S')