#0811
#这周总算忙完了,之后要好好学习一下nodejs和angular,这周用得真是太卡了...
from datetime import datetime as dt
之前说了时间里面主要操作的三个东西,时间戳,结构化时间和格式化时间,其实最常遇到的还是结构化时间和格式化时间的互相转换,在datetime模块里面,所谓的结构化时间就是
print(dt.now())
>>>
2018-08-11 19:05:05.746218
直接打印你可以看到年月日时分秒,它实际上是这个的实例
print(type(dt.now()))
>>>
我们可以获取到这个实例的很多信息
now=dt.now()
print(now.minute,now.hour,now.day)
>>>
10 19 11
比较方便我们拿出来操作
所谓格式化时间,就是时间的字符串,比如
t='2018-08-11'
这两者经常需要互相转换,我们爬虫拿到的json,里面的东西往往是格式化时间,转化成结构化时间后,就能方便的进行解析以及时间的加减。
互相转化其实也就这两个函数
a=dt.strftime(dt.now(),'%Y-%m-%d')
print(a)
t='2018-08-12'
st=dt.strptime(t,'%Y-%m-%d')
print(st)
>>>
2018-08-11
2018-08-12 00:00:00
把结构化时间编程字符串,用strftime,反之用strptime,他们的第二个参数都是时间的格式化字符串,你可以自定义自己想要的格式,但是格式化符是一样的,比如年月日时分秒分别是
%Y %m %d %H %M %S
你可以这样
t='2018-08-12'
st=dt.strptime(t,'%Y-%m-%d')
print(st)
#st是结构化时间
new_st=dt.strftime(st,'%Y~%m~%d~%H~%M~%S')
print(new_st)
#new_st是格式化时间,即时间字符串
>>>
2018-08-12 00:00:00
2018~08~12~00~00~00
一时想不起来也无所谓,我就经常想不起来,只要不是涉及时间戳的,不是strf就是strp,来个总有一个是的嘛,这样需要转换的时候思路肯定有了~