因為測試需要妖混,最近2天重新整理了一遍從ftp下載原始數(shù)據(jù)文件及分析數(shù)據(jù)的腳本,發(fā)現(xiàn)對時間方面的處理不是很順暢,查了不少資料及API文檔
在python中關于時間處理主要用到2個模塊,即datetime丸逸、time庫。補充一點: 學習一個庫剃袍,直接查看API文檔是最快捷的方式黄刚,即 python3 -m pydoc -b
-
time
- time(),返回從1970年1月1日至今的秒數(shù),浮點類型
-
gmtime(),將秒數(shù)轉化成utc 時間的元組民效,參數(shù)可默認憔维,可指定,默認傳入的秒數(shù)為當前時間的秒數(shù)畏邢,轉化后的元組格式如:
time.struct_time(tm_year=2017, tm_mon=7, tm_mday=19, tm_hour=7, tm_min=35, tm_sec=2, tm_wday=2, tm_yday=200, tm_isdst=0)
-
localtime()业扒,將秒數(shù)轉化成當前位置時區(qū)的時間元組,參數(shù)可默認舒萎,可指定程储,默認是返回當前時間的時間元組。用法類似
gmtime()
臂寝,區(qū)別為返回的元組章鲤,localtime()
返回當前位置時區(qū)的時間元組,加上了時區(qū)咆贬,gmtime()
為utc時間元組败徊,即0時區(qū) -
asctime(),將時間元組轉化成字符串類型,參數(shù)默認是當前時間掏缎,可指定皱蹦,返回結果格式類似
Wed Jul 19 15:46:13 2017
- mktime(),將時間元組轉化成秒數(shù),需指定參數(shù)眷蜈,返回結果為浮點類型
- strftime(format[, [tuple])將時間元組轉化成指定格式的字符串沪哺,格式說明見后面的附錄
- strptime(string, format)將時間字符串按照指定格式轉化成時間元組,約束了輸入的時間格式
**綜上所述: **
產(chǎn)生時間元組的方法:gmtime()
酌儒、localtime()
辜妓、strptime()
產(chǎn)生秒數(shù)(此處為浮點型)的方法:time()
、mktime()
將時間用字符串格式表示的方法:strftime()
、asctime()
示例:
將指定時間字符串轉化成utc時間
import time
def getUTCTime(ptime):#輸入的時間格式要求:'%Y/%m/%d %H:%M'
time_tuple=time.strptime(ptime,'%Y/%m/%d %H:%M')
seconds=time.mktime(time_tuple)
utc_tuple=time.gmtime(seconds)
formattime=time.strftime("%Y-%m-%d %H:%M",utc_tuple)
print(time_tuple)
print(seconds)
print(utc_tuple)
print(formattime)
getUTCTime("2017/12/2 23:55")
#結果
time.struct_time(tm_year=2017, tm_mon=12, tm_mday=2, tm_hour=23, tm_min=55, tm_sec=0, tm_wday=5, tm_yday=336, tm_isdst=-1)
1512230100.0
time.struct_time(tm_year=2017, tm_mon=12, tm_mday=2, tm_hour=15, tm_min=55, tm_sec=0, tm_wday=5, tm_yday=336, tm_isdst=0)
2017-12-02 15:55
附錄:
轉化格式說明,直接摘錄了一篇博客呆躲,便于后續(xù)使用時再去查找异逐,這里寫得比API文檔更為詳細,感謝插掂!同時附上博客地址:http://blog.csdn.net/chuan_day/article/details/73692278
%a 本地星期的短名稱 如:Sun, Mon, ..., Sat (en_US); So, Mo, ..., Sa (de_DE)
%A 本地星期全名稱 如 :Sunday, Monday, ..., Saturday (en_US);Sonntag, Montag, ..., Samstag (de_DE)
%w 星期的數(shù)字表示灰瞻,0表示周日,6表示周六 如:0,1,2辅甥,酝润,,6
%d 日的數(shù)字表示璃弄,并且使用0來填補(0-9),如:01, 02, ..., 31
%b 月份的短名稱顯示要销,英文單詞簡寫,如:Jan, Feb, ..., Dec (en_US);Jan, Feb, ..., Dez (de_DE)
%B 月份的全名稱顯示夏块,如:January, February, ..., December (en_US);Januar, Februar, ..., Dezember (de_DE)
%m 月份數(shù)字顯示疏咐,并且用0來補全,如:01, 02, ..., 12
%y 年份的數(shù)字表示脐供,兩位表示浑塞,如:00, 01, ..., 99
%Y 年份的數(shù)字表示,四位表示政己,如:0001, 0002, ..., 2013, 2014, ..., 9998, 9999
%H 24小時制表示酌壕,如:00, 01, ..., 23
%I 12小時制表示,如:01, 02, ..., 12
%p 上下午的表示歇由,如:AM卵牍,PM
%M 分鐘,并且用0補全(0-9)印蓖,如:00, 01, ..., 59
%S 秒鐘辽慕,并且用0補全(0-9),如:00, 01, ..., 59
%f 微妙表示赦肃,如:000000, 000001, ..., 999999
%z 時區(qū)偏移量溅蛉,如:(empty), +0000, -0400, +1030
%Z 時區(qū)名稱,如:(empty), UTC, EST, CST
%j 全年中的哪一個他宛,用0補全船侧,如:001, 002, ..., 366
%U 全年中的第幾個星期,sunday為第一天如:00, 01, ..., 53
%W 全年中的第幾個星期厅各,monday為第一天如:00, 01, ..., 53
%c 本地時間镜撩,如:06/24/17 15:43:10
%x 本地日期,如:08/16/88 (None);
%X 本地時間,如:21:30:00 (en_US);
%% %符號