abstrak:一、time1、獲取當(dāng)前時(shí)間和時(shí)區(qū)>>> now = time.time() # 當(dāng)前時(shí)間 float類型 >>> time.strftime("%Y-%m-%d %H:%M:%S") #當(dāng)前時(shí)間 str &
一、time
1、獲取當(dāng)前時(shí)間和時(shí)區(qū)
>>> now = time.time() # 當(dāng)前時(shí)間 float類型 >>> time.strftime("%Y-%m-%d %H:%M:%S") #當(dāng)前時(shí)間 str '2016-11-04 15:29:58' >>> time.ctime() # 當(dāng)前時(shí)間 english str 'Fri Nov 4 15:40:42 2016' >>> time.time() 1478244363.875308 >>> time.localtime() # 當(dāng)前時(shí)間 time結(jié)構(gòu)體 time.struct_time(tm_year=2016, tm_mon=11, tm_mday=4, tm_hour=15, tm_min=26, tm_sec=9, tm_wday=4, tm_yday=309, tm_isdst=0) >>> time.localtime(now) # float -> struct_time time.struct_time(tm_year=2016, tm_mon=11, tm_mday=4, tm_hour=15, tm_min=26, tm_sec=1, tm_wday=4, tm_yday=309, tm_isdst=0) >>> time.strftime('%Z', time.localtime()) # 顯示當(dāng)前時(shí)區(qū) China standard timezone 'CST' >>> time.gmtime() # 顯示UTC標(biāo)準(zhǔn)時(shí)間 跟中國相差8個(gè)鐘 time.struct_time(tm_year=2016, tm_mon=11, tm_mday=4, tm_hour=7, tm_min=26, tm_sec=28, tm_wday=4, tm_yday=309, tm_isdst=0)
其中time.time()返回的一個(gè)float型,是從1970年1月1日0時(shí)起到當(dāng)前經(jīng)過的秒數(shù),注意這里是分時(shí)區(qū)的
time.localtime()返回的是一個(gè)time結(jié)構(gòu)體,其中包括tm_year,tm_mon,tm_mday,tm_hour,tm_min,tm_sec,tm_wday,tm_yday,tm_isdst=0(夏令時(shí)間標(biāo)志)
2、時(shí)間字符串轉(zhuǎn)成time格式
>>> a = '2016-11-04 15:29:58' >>> time.strptime(a, "%Y-%m-%d %H:%M:%S") time.struct_time(tm_year=2016, tm_mon=11, tm_mday=4, tm_hour=15, tm_min=29, tm_sec=58, tm_wday=4, tm_yday=309, tm_isdst=-1)
3、時(shí)間字符串轉(zhuǎn)成float類型
>>> a = '2016-11-04 15:29:58' >>> time.mktime(time.strptime(a, "%Y-%m-%d %H:%M:%S")) 1478244598.0
4、time tuple格式轉(zhuǎn)成字符串
>>> time_tuple = (2016, 11, 04, 13, 51, 18, 2, 317, 0) >>> time.strftime("%Y-%m-%d %H:%M:%S", time_tuple) '2016-11-04 13:51:18'
5、float類型轉(zhuǎn)成時(shí)間字符串
>>> a = 1478244598.0 >>> b = time.localtime(a) >>> time.strftime("%Y-%m-%d %H:%M:%S", b) '2016-11-04 15:29:58'
6、時(shí)間和日期格式化符號說明
%y 兩位數(shù)的年份表示(00-99) %Y 四位數(shù)的年份表示(000-9999) %m 月份(01-12) %d 月內(nèi)中的一天(0-31) %H 24小時(shí)制小時(shí)數(shù)(0-23) %I 12小時(shí)制小時(shí)數(shù)(01-12) %M 分鐘數(shù)(00=59) %S 秒(00-59) %a 本地簡化星期名稱 %A 本地完整星期名稱 %b 本地簡化的月份名稱 %B 本地完整的月份名稱 %c 本地相應(yīng)的日期表示和時(shí)間表示 %j 年內(nèi)的一天(001-366) %p 本地A.M.或P.M.的等價(jià)符 %U 一年中的星期數(shù)(00-53)星期天為星期的開始 %w 星期(0-6),星期天為星期的開始 %W 一年中的星期數(shù)(00-53)星期一為星期的開始 %x 本地相應(yīng)的日期表示 %X 本地相應(yīng)的時(shí)間表示 %Z 當(dāng)前時(shí)區(qū)的名稱 %% %號本身
二、datetime
1、獲取當(dāng)前時(shí)間
>>> datetime.datetime.now() # datetime tuple datetime.datetime(2016, 11, 4, 15, 52, 17, 680405) >>> time.mktime(datetime.datetime.now().timetuple()) # float類型 1478245984.0 >>> datetime.datetime.now().replace(second=0, microsecond=0) # 秒數(shù)為0 毫秒數(shù)為0 datetime.datetime(2016, 11, 4, 15, 54) >>> datetime.date.today() # 當(dāng)前天 datetime.date(2016, 11, 4)
2、datetime tuple轉(zhuǎn)成時(shí)間字符串
>>> now = datetime.datetime.now() >>> now.strftime("%Y-%m-%d %H:%S:%M")' 2016-11-04 16:06:00'
3、datetime tuple轉(zhuǎn)成float類型
>>> now = datetime.datetime.now()>>> time.mktime(now.timetuple())1478246406.0
4、datetime date和time轉(zhuǎn)換
>>> a = datetime.date(2016, 11, 4) >>> datetime.datetime.strptime(str(a),'%Y-%m-%d') datetime.datetime(2016, 11, 4, 0, 0) >>> a datetime.date(2016, 11, 4)
5、獲取當(dāng)前時(shí)間的前一段時(shí)間
now = datetime.datetime.now() # 前一小時(shí) a = now - datetime.timedelta(hours=1) print a.strftime("%Y-%m-%d %H:%S:%M") # 前一天 b = now - datetime.timedelta(days=1) print b.strftime("%Y-%m-%d %H:%S:%M") # 上周日 c = now - datetime.timedelta(days=now.isoweekday()) print c.strftime("%Y-%m-%d %H:%S:%M")# 上周一 d = c - datetime.timedelta(days=6) print d.strftime("%Y-%m-%d %H:%S:%M")# 上個(gè)月最后一天 e = now - datetime.timedelta(days=now.day) print e.strftime("%Y-%m-%d %H:%S:%M") # 上個(gè)月第一天 print datetime.datetime(e.year, e.month, 1)
6、獲取兩個(gè)時(shí)間相差的秒數(shù)
(datetime.datetime.now() - datetime.datetime(1970, 1,1,0, 0, 0,0)).total_seconds() # 獲取的是UTC標(biāo)準(zhǔn)時(shí)區(qū)的時(shí)間float類型