官方文档
http://python.usyiyi.cn/translate/python_352/library/datetime.html
代码示例
from datetime import datetime now = datetime.now() print("年:%s" % now.year) print("月:%s" % now.month) print("日:%s" % now.day) print("时:%s" % now.hour) print("分:%s" % now.minute) print("秒:%s" % now.second) print("毫秒:%s" % now.microsecond) print("星期:%s" % now.weekday()) # 星期一到星期日 0-6 print("星期:%s" % now.isoweekday()) # 星期一到星期日 1-7 print("日期:%s" % now.date()) print("时间:%s" % now.time()) print("公里序数:%s" % now.toordinal()) # 00001年1月1日的公里序数是1,00001年1月2日的公里序数是2
from datetime import datetime dt = datetime(year=2017, month=6, day=27, hour=16, minute=19, second=52) print(dt.strftime("%Y-%m-%d %H:%M:%S")) # %Y 以0填充的十进制数字表示的带有世纪的年份 0001, 0002, ..., 2013, 2014, ..., 9998, 9999 # %y 以0填充的十进制数表示的不带世纪的年份 00, 01, ..., 99 # %m 以0填充的十进制数字表示的月份 01, 02, 03..., 12 # %d 以0填充的十进制数字表示的月份中的日期 01, 02, 03..., 31 # %H 以0填充的十进制数字表示的小时(24小时制)00, 01, 02, 03...23 # %I 以0填充的十进制数表示的小时(12小时制)01, 02, ..., 12 # %M 以0填充的十进制数字表示的分钟 00, 01, 02...59 # %S 以0填充的十进制数字表示的秒数 00, 01, 02...59 # %j 以0填充的十进制数字表示的一年中的日期 001,002,...,366 # %% '%'字符的字面值
注意: strftime()方法的参数在包含中文时,可能会有错,有两个解决办法,推荐第二种
from datetime import datetime from datetime import timedelta # 1.给一个日期加上指定的时间 today = datetime.today() print(today + timedelta(days=1)) # +1 天 print(today + timedelta(days=-1)) # -1 天 => today - timedelta(days=1) print(today + timedelta(hours=1)) # +1 小时 print(today + timedelta(minutes=120)) # +120 分钟 => +2小时 print(today + timedelta(seconds=-10)) # -10 秒 print(today + timedelta(weeks=1)) # +1 星期 # 2.两个日期相减 dt1 = datetime(year=2017, month=6, day=30, hour=13, minute=50) dt2 = datetime(year=2017, month=6, day=30, hour=16, minute=10) lag_time = dt2 - dt1 print(lag_time.total_seconds()) # 相差的时间,单位: 秒 print(lag_time.total_seconds()/60) # 相差的时间,单位: 分钟 print(lag_time.total_seconds()/60/60) # 相差的时间,单位: 小时
from datetime import datetime # 使用类方法 datetime.strptime(str, format) dt = datetime.strptime("2017-6-28 15:56:34", "%Y-%m-%d %H:%M:%S") print(dt) print(type(dt)) # 类型: <class 'datetime.datetime'>