python中日期和時間

與時間處理的有關(guān)模塊有哪些

  • time
  • datetime
  • calendar

在python中淮摔,通常用時間戳弃甥、格式化的時間字符串和元組3種方式表示時間

時間戳

  • 時間戳(timestamp)表示從1970年1月1日00時00分00秒開始計算的偏移量

就是從那個時間開始到現(xiàn)在的總毫秒數(shù)短纵。

    import time
    now = time.time()
    print(now)

最后輸出的就是總毫秒


001.jpg

struct_time 元組

python的時間元組

序號 屬性 字段
0 tm_year 4位數(shù)年 如2008
1 tm_mon 1~12
2 tm_mday 1~31
3 tm_hour 小時 1~23
4 tm_min 分鐘 0~59
5 tm_sec 0~61(60或者61是閏秒)
6 tm_wday 一周的第幾日 0~6(0是周一)
7 tm_yday 一年的第幾日 1~366(儒略歷)
8 tm_isdst 夏令時 -1,0,1,-1是決定是否為夏令的旗幟

time 模塊

time()函數(shù)用于返回當前時間的時間戳

    import time  # 導入時間模塊
    now = time.time()  # 第一個time代表時間的這個模塊,后面time()代表函數(shù),次函數(shù)不需要傳參數(shù)
    print(now)

localtime([secs])函數(shù)

localtime()函數(shù)的作用是格式化時間戳為本地時間,如果secs參數(shù)未輸入萝勤,就以當前時間為轉(zhuǎn)換標準.

    import time  # 導入時間模塊
    # time.localtime()中time為模塊,localtime()為函數(shù)呐伞,次函數(shù)不穿參數(shù)就以現(xiàn)在的時間戳為參數(shù)敌卓,返回的是一個struct_time元組
    print('time.localtime():{}'.format(time.localtime()))
002.jpg

gmtime([secs])函數(shù)

gmtime()函數(shù)用于將一個時間戳轉(zhuǎn)換為UTC時區(qū)(0時區(qū))的struct_time,可選的參數(shù)secs表示從unix元年到現(xiàn)在總秒數(shù)伶氢。但趟径,gmtime()的默認值為time.time(),函數(shù)返回time.struct_time類型的對象。

    import time  # 導入時間模塊
    print(time.localtime())
    print(time.gmtime())   #返回的是函數(shù)默認值癣防,即time.time()的struct_time的類型對象的UTC時間蜗巧。

如圖:上面為本地時間,下面一個為UTC時間


003.jpg

mktime(t)

mktime()函數(shù)用于執(zhí)行與gmtime()劣砍、localtime()相反的操作惧蛹,接收struct_time對象為參數(shù),返回用秒數(shù)表示時間的浮點數(shù)刑枝。如果輸入的值不合法香嗓,就會觸發(fā)oberflowerror或者valueerror。

    import time  # 導入時間模塊
    t = (2018,9,18,19,39,30,3,4,5)  # 輸入一個結(jié)構(gòu)化時間或者完整的9位數(shù)元組元素
    print(time.mktime(t))

asctime([t]) 函數(shù)

asctime([t])用于接手時間元組并且返回一個可讀的形式為Sun Sep 24 08:09:45 2015(2016年9月24日 周日8時09分45秒)的字符串装畅。

ctime([secs])函數(shù)

ctime()函數(shù)用于把一個時間戳(按秒計算的浮點數(shù))轉(zhuǎn)化為time.asctime()的形式靠娱。如果未指定參數(shù),就會默認將time.time()作為參數(shù)掠兄。ctime相當于asctime(localtime())像云。

    import time  # 導入時間模塊 
    print(time.ctime(time.time()))  # 對現(xiàn)在的時間戳返,回一個可讀形式的時間如下圖蚂夕。
004.jpg

sleeptime([secs])

sleep 函數(shù)用于推遲調(diào)用線程的運行迅诬,可以通過參數(shù)secs指定進程掛起的時間。

    import time  # 導入時間模塊
    print(time.asctime())  # 設置一個對比進程開始的時間
    time.sleep(10)  # 推遲調(diào)用線程的運行婿牍,推遲10秒
    print(time.asctime())  # 再次查看推遲之后的時間
    # 結(jié)果如下圖侈贷。
005.jpg

clock()函數(shù)

clock()函數(shù)是用于浮點數(shù)計算的秒數(shù),返回cpu當前的時間等脂,用來衡量程序的耗時俏蛮。unix上為“進程時間”。

    import time  #導入時間函數(shù)
    for i in range(100000):  #寫一個for 循環(huán)
        print(i)
    print(time.clock())  # 返回進程的耗時

strftime()函數(shù)

strftime()函數(shù)用于接受時間元組上遥,并返回可讀字符串表示當?shù)貢r間搏屑,格式由參數(shù)format 決定。

    import time  # 導入時間模塊
    t = (2018,9,18,19,39,30,3,4,5)  # 寫一個結(jié)構(gòu)化時間或9位元素元組
    t = time.mktime(t)  # 轉(zhuǎn)換為時間秒數(shù)
    print(time.strftime('%b %d %Y %H:%M:%S',time.localtime(t)))  # 返回可讀字符串的當?shù)貢r間,其中time.localtime()函數(shù)會把秒數(shù)轉(zhuǎn)化為當?shù)氐囊粋€結(jié)構(gòu)化時間
006.jpg

strptime()函數(shù)

strptime()函數(shù)用于根據(jù)指定的格式把一個時間字符串解析為時間元組

    import time  # 導入time模塊
    t = ('2018-09-09','%Y-%m-%d')  #定義一個時間字符串粉楚,后面跟著其多對應的時間格式辣恋,要切記,當用‘-’連接時模软,后面格式就用'-'伟骨,如何是/,后面也用/
    print(t)
007.jpg

三種時間格式的相互轉(zhuǎn)化

  • format string-->(time.strptime())-->struct_time-->(time.gmtime())-->timestamp

  • timestamp-->(time.localtime())-->struct_time-->(timee.strptime())-->format time
    struct_time-->(time.asctime())-->%a %b %d %H:%M:%S %Y 串<--(timee.ctime())--timestamp

datetime模塊撵摆。

datetime是date和time 的結(jié)合體底靠,功能強大,支持從0001年到9999年特铝。即datetime.MINYEAR和datetime.MAXYEAR暑中。
datetime模塊下的5個類:

  • datetime.date 表示日期的類。常用的屬性有鲫剿,year,month,day
  • datetime.time 表示時間的類鳄逾。常用的屬性有 hour,minute,second,microsecond
  • datetime.datetime 表示日期時間。
  • datetime.timedelta 表示時間間隔灵莲,即兩個時間點之間的長度
  • datetime.tzinfo 與時區(qū)有關(guān)的相關(guān)信息雕凹。

其中datetime.datetime類應用最為普遍和廣泛。

taday()

datetime.datetime.today() 表示返回一個當前的本地時間的datetime對象。

    import datetime # 導入datetime模塊
    print(datetime.datetime.today())  #datetime.datetime是類
008.jpg

now()

和tadoy()基本相似枚抵,卻別就是now()接受參數(shù)线欲,如果不寫,默認為當?shù)貢r間汽摹,或者傳入一個參數(shù)所指時區(qū)的本地時間李丰。

    import time
    print(datetime.datetime.now())  # 在此沒有傳入?yún)?shù),則默認為所在時區(qū)所指的本地時間逼泣。返回結(jié)果的形式和today()相同趴泌,類型都是datetime.datetime類

datetime.utcnow()

返回一個當前utc(0時區(qū))的時間對象.

    import datetime
    print(datetime.datetime.utcnow())  #返回一個utc時間的datetime類。類型為datetime.datetime

fromtimestamp(timestamp[,tz])

根據(jù)時間戳創(chuàng)建一個datetime對象,tz為指定時區(qū)信息

    import datetime,time  # 導入了兩個模塊拉庶,一個time用于獲取時間戳
    print(datetime.datetime.fromtimestamp(time.time()))  #參數(shù)tz我們提供一個當前時間的時間戳
009.jpg

utcfromtimestamp(timestamp)

根據(jù)時間戳創(chuàng)建一個datetime類嗜憔,不過返回的是utc時間的對象。

    import time
    print(datetime.datetime.utcfromtimestamp(time.time()))

對比fromtimestamp()和utcfromtimestamp()


010.jpg

strptime(date_string,format)

將格式字符串轉(zhuǎn)換為datetime對象氏仗,date_string值日期字符串,format為格式化方法

    import datetime
    d_t = datetime.datetime.now()
    print("strptime 是",datetime.datetime.strptime(str(d_t),'%Y-%m-%d %H:%M:%S.%f'))
    print("strptime 是",datetime.datetime.strptime('2018-09-09 20:34:25','%Y-%m-%d %H:%M:%S'))
011.jpg

strftime(format)

把時間轉(zhuǎn)為字符串格式吉捶,即str類

    import datetime
    now = datetime.datetime.now()  #獲取現(xiàn)在的本地的時間
    print(now)
    now_str = datetime.datetime.strftime(now,'%Y-%m-%d %H:%M:%S') # 把時間轉(zhuǎn)為字符串格式
        # datetime.datetime.strptime() # (cls,date_str,format) # 把字符串轉(zhuǎn)為時間類型
    print(now_str)
    print(type(now_str))  #可以看出now_str 為str類
    n_day = '2017/8/20'
    time = now - datetime.datetime.strptime(n_day,'%Y/%m/%d')  #這個可以看出當時間為datetime.datetime類時,時間可以進行相互計算廓鞠。
    print(time)
012.jpg
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末帚稠,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子床佳,更是在濱河造成了極大的恐慌滋早,老刑警劉巖,帶你破解...
    沈念sama閱讀 212,718評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件砌们,死亡現(xiàn)場離奇詭異杆麸,居然都是意外死亡,警方通過查閱死者的電腦和手機浪感,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,683評論 3 385
  • 文/潘曉璐 我一進店門昔头,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人影兽,你說我怎么就攤上這事揭斧。” “怎么了峻堰?”我有些...
    開封第一講書人閱讀 158,207評論 0 348
  • 文/不壞的土叔 我叫張陵讹开,是天一觀的道長。 經(jīng)常有香客問我捐名,道長旦万,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,755評論 1 284
  • 正文 為了忘掉前任镶蹋,我火速辦了婚禮成艘,結(jié)果婚禮上赏半,老公的妹妹穿的比我還像新娘。我一直安慰自己淆两,他們只是感情好断箫,可當我...
    茶點故事閱讀 65,862評論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著琼腔,像睡著了一般瑰枫。 火紅的嫁衣襯著肌膚如雪踱葛。 梳的紋絲不亂的頭發(fā)上丹莲,一...
    開封第一講書人閱讀 50,050評論 1 291
  • 那天,我揣著相機與錄音尸诽,去河邊找鬼甥材。 笑死,一個胖子當著我的面吹牛性含,可吹牛的內(nèi)容都是我干的洲赵。 我是一名探鬼主播,決...
    沈念sama閱讀 39,136評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼商蕴,長吁一口氣:“原來是場噩夢啊……” “哼叠萍!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起绪商,我...
    開封第一講書人閱讀 37,882評論 0 268
  • 序言:老撾萬榮一對情侶失蹤苛谷,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后格郁,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體腹殿,經(jīng)...
    沈念sama閱讀 44,330評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,651評論 2 327
  • 正文 我和宋清朗相戀三年例书,在試婚紗的時候發(fā)現(xiàn)自己被綠了锣尉。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,789評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡决采,死狀恐怖自沧,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情树瞭,我是刑警寧澤拇厢,帶...
    沈念sama閱讀 34,477評論 4 333
  • 正文 年R本政府宣布,位于F島的核電站移迫,受9級特大地震影響旺嬉,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜厨埋,卻給世界環(huán)境...
    茶點故事閱讀 40,135評論 3 317
  • 文/蒙蒙 一邪媳、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦雨效、人聲如沸迅涮。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,864評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽叮姑。三九已至,卻和暖如春据悔,著一層夾襖步出監(jiān)牢的瞬間传透,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,099評論 1 267
  • 我被黑心中介騙來泰國打工极颓, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留朱盐,地道東北人。 一個月前我還...
    沈念sama閱讀 46,598評論 2 362
  • 正文 我出身青樓菠隆,卻偏偏與公主長得像兵琳,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子骇径,可洞房花燭夜當晚...
    茶點故事閱讀 43,697評論 2 351

推薦閱讀更多精彩內(nèi)容