在写脚本或者网站返回数据时候,常常遇到须要讲时间转换成不一样格式的状况,这里我总结下本身遇到的需求以及解决办法。数据库
首先咱们须要了解一下几个表达:数组
(1)时间戳bash
>>> import time >>> time.time() #时间戳 带毫秒 1465867278.111247 >>> int(time.time()) 1465867395 #时间戳 整秒
(2)时间数组网站
>>> time.localtime(1455874589.054742) time.struct_time(tm_year=2016, tm_mon=2, tm_mday=19, tm_hour=17, tm_min=36, tm_sec=29, tm_wday=4, tm_yday=50, tm_isdst=0)
>>> a = "2016-01-16 06:42:09" >>> time.strptime(a, "%Y-%m-%d %H:%M:%S") time.struct_time(tm_year=2016, tm_mon=1, tm_mday=16, tm_hour=6, tm_min=42, tm_sec=9, tm_wday=5, tm_yday=16, tm_isdst=-1)
(3)时间格式spa
>>> import datetime >>> datetime.datetime.now() datetime.datetime(2016, 6, 14, 9, 30, 39, 7797) >>> print datetime.datetime.now() 2016-06-14 09:30:46.535643
上面三种,咱们用到最多的就是(1)时间戳和(3)时间格式,code
时间戳用于数据库存储,在执行脚本的时候计算时间间隔等都很是方便,class
时间格式用于网站上显示时间很直观。import
------------date
(1)时间格式 --> 时间戳im
>>> import time,datetime >>> a = '2016-01-16 06:42:09' #后面没有毫秒 >>> b = time.mktime(time.strptime(a, '%Y-%m-%d %H:%M:%S')) >>> b 1452897729.0 >>> a = '20160630' >>> b = time.mktime(time.strptime(a, "%Y%m%d")) >>> b 1467216000.0
>>> import time, datetime >>> now = datetime.datetime.now() >>> a = time.mktime(now.timetuple()) >>> a 1465870113.0
(2)时间戳 --> 时间格式
>>> import time, datetime >>> timeStamp = time.time() >>> dateArray = datetime.datetime.utcfromtimestamp(timeStamp) >>> StyleTime = dateArray.strftime("%Y-%m-%d %H:%M:%S.%f") >>> StyleTime '2016-06-14 01:57:28.172960'
(3)时间格式中 时间值 的替换
>>> datetime.datetime.now().replace(year=2000,month=1, day=1,hour=0, minute=0, second=0, microsecond=0) datetime.datetime(2000, 1, 1, 0, 0) >>> str(datetime.datetime.now().replace(year=2000,month=1, day=1,hour=0, minute=0, second=0, microsecond=0)) '2000-01-01 00:00:00'
(4)计算出固定时间的时间戳
>>> a = datetime.datetime.now().replace(month=1, day=1,hour=0, minute=0, second=0, microsecond=0) >>> b = time.mktime(a.timetuple()) >>> b 1451577600.0
(5)计算前9天的时间
>>> datetime.datetime.now() datetime.datetime(2016, 6, 14, 10, 45, 4, 798335) >>> datetime.datetime.now() - datetime.timedelta(days=9) datetime.datetime(2016, 6, 5, 10, 45, 26, 573241)
(6)时间格式转换为其余指定格式
>>> a = '2016-01-16 06:42:09' >>> timeArray = time.strptime(a, "%Y-%m-%d %H:%M:%S") >>> otherStyleTime = time.strftime("%Y/%m/%d %H:%M:%S", timeArray) >>> otherStyleTime '2016/01/16 06:42:09'