Python中的 时间

      在写脚本或者网站返回数据时候,常常遇到须要讲时间转换成不一样格式的状况,这里我总结下本身遇到的需求以及解决办法。数据库

首先咱们须要了解一下几个表达:数组

(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'
相关文章
相关标签/搜索