python---關(guān)于時間的處理(一)

因為測試需要,最近2天重新整理了一遍從ftp下載原始數(shù)據(jù)文件及分析數(shù)據(jù)的腳本,發(fā)現(xiàn)對時間方面的處理不是很順暢,查了不少資料及API文檔

在python中關(guān)于時間處理主要用到2個模塊,即datetime、time庫。補充一點: 學(xué)習(xí)一個庫,直接查看API文檔是最快捷的方式,即 python3 -m pydoc -b

  • time
  • time(),返回從1970年1月1日至今的秒數(shù),浮點類型
  • gmtime(),將秒數(shù)轉(zhuǎn)化成utc 時間的元組,參數(shù)可默認,可指定,默認傳入的秒數(shù)為當(dāng)前時間的秒數(shù),轉(zhuǎn)化后的元組格式如: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ù)轉(zhuǎn)化成當(dāng)前位置時區(qū)的時間元組,參數(shù)可默認,可指定,默認是返回當(dāng)前時間的時間元組。用法類似gmtime(),區(qū)別為返回的元組,localtime()返回當(dāng)前位置時區(qū)的時間元組,加上了時區(qū),gmtime()為utc時間元組,即0時區(qū)
  • asctime(),將時間元組轉(zhuǎn)化成字符串類型,參數(shù)默認是當(dāng)前時間,可指定,返回結(jié)果格式類似Wed Jul 19 15:46:13 2017
  • mktime(),將時間元組轉(zhuǎn)化成秒數(shù),需指定參數(shù),返回結(jié)果為浮點類型
  • strftime(format[, [tuple])將時間元組轉(zhuǎn)化成指定格式的字符串,格式說明見后面的附錄
  • strptime(string, format)將時間字符串按照指定格式轉(zhuǎn)化成時間元組,約束了輸入的時間格式

**綜上所述: **
產(chǎn)生時間元組的方法:gmtime()、localtime()、strptime()
產(chǎn)生秒數(shù)(此處為浮點型)的方法:time()、mktime()
將時間用字符串格式表示的方法:strftime()、asctime()
示例:
將指定時間字符串轉(zhuǎn)化成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")
#結(jié)果
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

附錄:
轉(zhuǎn)化格式說明,直接摘錄了一篇博客,便于后續(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);
%% %符號

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • python——時間與時間戳之間的轉(zhuǎn)換 對于時間數(shù)據(jù),如2016-05-05 20:28:54,有時需要與時間戳進...
    初來的雨天閱讀 5,642評論 0 3
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,554評論 19 139
  • 原文鏈接:http://www.cnblogs.com/lhj588/archive/2012/04/23/246...
    qtruip閱讀 1,412評論 0 0
  • 1. 數(shù)值類型 ** int 整數(shù) **如:1,100,-8080,0,十六進制:0xff00,0xa5b4c3d...
    泊牧閱讀 311評論 0 0
  • 開始之前,首先要說明這幾點: 1.在Python中,通常有這幾種方式來表示時間:1)時間戳 2)格式化的時間字符串...
    TENG書閱讀 466評論 0 0

友情鏈接更多精彩內(nèi)容