Python time datetime模块

导入与时间相关的模块time
import time
print time.time()
输出的结果是:
1279578704.6725271

1、time.asctime()格式化时间
获取可读的时间模式的函数是asctime()
print time.asctime( time.localtime() )
输出结果:
Thu Aug 18 14:04:03 2016

2、time.localtime()格式化时间戳
上面得到的一连串的数字不是我们想要的结果,我们可以利用time模块的格式化时间的方法来处理:
time.localtime(time.time())
用time.localtime()方法,作用是格式化时间戳为本地的时间。
输出的结果是:
time.struct_time(tm_year=2016, tm_mon=7, tm_mday=19, tm_hour=22, tm_min=33, tm_sec=39, tm_wday=0, tm_yday=200, tm_isdst=0)
得到某一特定的项:
time.struct_time.tm_year

3、time.strftime()
将格式化后的时间戳以字符串输出
现在看起来更有希望格式成我们想要的时间了。
time.strftime('%Y-%m-%d',time.localtime(time.time()))
把刚才的一大串信息格式化字符串输出,现在的结果是:
2016-07-19
time.strftime里面有很多参数,可以让你能够更随意的输出自己想要的东西:
下面是time.strftime的参数:
strftime(format[, tuple]) -> string
将指定的struct_time(默认为当前时间),根据指定的格式化字符串输出
python中时间日期格式化符号:
%y 两位数的年份表示(00-99)
%Y 四位数的年份表示(000-9999)
%m 月份(01-12)
%d 月内中的一天(0-31)
%H 24小时制小时数(0-23)
%I 12小时制小时数(01-12)
%M 分钟数(00=59)
%S 秒(00-59)

4、time.strptime()
# 将格式字符串转换为时间戳。可以获取.year .month .day 等信息
b = '2016-06-28 18:02'
print datetime.strptime(b, '%Y-%m-%d %H:%M')
print type(b)
输出结果:
2016-06-28 18:02:00
<type 'datetime.datetime'>

5、时间差计算
需要先把字符串时间或时间戳转换成datetime.datetime类型
b = '2016-06-28 18:02'
print datetime.now(). - datetime.strptime(b, '%Y-%m-%d %H:%M')
>>>27 days, 19:03:42.414000

注意:datetime.datetime单独的时间字段.day .month等相减得到的值都是相对结果!
b = '2016-06-28 18:02'
c = '2016-02-25 18:02'
print datetime.strptime(b, '%Y-%m-%d %H:%M').day - datetime.strptime(c, '%Y-%m-%d %H:%M').day
>>> 3
明显结果是不对的!

posted @ 2017-08-25 13:22  chandb  阅读(241)  评论(0编辑  收藏  举报