一、获取当前日期和时间
from datetime import datetime
now=datetime.now()
print now
print (type(now))
输出结果:
2017-09-19 10:51:40.034996
<type 'datetime.datetime'>
注意到datetime
是模块,datetime
模块还包含一个datetime
类,通过from datetime import datetime
导入的才是datetime
这个类。
如果仅导入import datetime
,则必须引用全名datetime.datetime
。
datetime.now()
返回当前日期和时间,其类型是datetime
。
要指定某个日期和时间,我们直接用参数构造一个datetime
:
from datetime import datetime
dt=datetime(2017,9,19,10,55)
print dt
输出结果:
2017-09-19 10:55:00
三、str转换为datetime
很多时候,用户输入的日期和时间是字符串,要处理日期和时间,首先必须把str转换为datetime。转换方法是通过datetime.strptime()
实现,需要一个日期和时间的格式化字符串:
from datetime import *
cday=datetime.strptime('2017-1-1 18:20:20','%Y-%m-%d %H:%M:%S')
print cday
输出结果:
2017-01-01 18:20:20
字符串
'%Y-%m-%d %H:%M:%S'
规定了日期和时间部分的格式。
注意转换后的datetime是没有时区信息的。
四、datetime转换为str
如果已经有了datetime对象,要把它格式化为字符串显示给用户,就需要转换为str,转换方法是通过strftime()
实现的,同样需要一个日期和时间的格式化字符串:
from datetime import *
now=datetime.now()
print now.strftime('%a,%b %d %H:%M')
输出结果:
Tue,Sep 19 11:16
五、datetime加减
对日期和时间进行加减实际上就是把datetime往后或往前计算,得到新的datetime。加减可以直接用
+
和
-
运算符,不过需要导入
timedelta
这个类:
from datetime import datetime,timedelta
now=datetime.now()
print now
print now+timedelta(hours=10)
print now-timedelta(days=1)
print now+timedelta(days=2,hours=12)
输出结果:
2017-09-19 11:22:28.720470
2017-09-19 21:22:28.720470
2017-09-18 11:22:28.720470
2017-09-21 23:22:28.720470