小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

如何在Python中操作日期和時(shí)間

 老三的休閑書屋 2021-04-06

編寫Python程序,處理日期和時(shí)間經(jīng)常會(huì)遇到,幸好Python本身集成了很多日期、時(shí)間相關(guān)的模塊,讓這件繁瑣的工作變的方便。本文介紹Python中功能強(qiáng)大的datetime模塊。

datetime模塊專門處理涉及時(shí)間相關(guān)的工作,比如日期、小時(shí)、分鐘、秒、星期、月、年等,該模塊也提供其他高級的功能,如操作時(shí)區(qū)和夏令時(shí),同時(shí)還能夠處理時(shí)間戳等。datetime模塊有五個(gè)常用的類:

  • datetime,可以同時(shí)操作日期和時(shí)間(月、日、年、小時(shí)、秒、微秒)
  • date,操作日期(月、日、年)
  • time,操作時(shí)間(小時(shí)、分鐘、秒、微秒)
  • timedelta,操作時(shí)間范圍
  • tzinfo,操作時(shí)區(qū)的一個(gè)抽象類

下面對datetime模塊常用的類和函數(shù)做介紹:

datetime類是datetime模塊中功能最強(qiáng)大的類,它可以同時(shí)操作日期和時(shí)間。

1,得到當(dāng)前時(shí)間,通過datetime類的一個(gè)簡單函數(shù)就可以實(shí)現(xiàn):

#!/usr/bin/env pythonimport datetimedatetime_now = datetime.datetime.now() #now是一個(gè)類函數(shù)print(datetime_now)

輸出:

2021-04-05 13:31:08.192648

2,從日期字符串中得到y(tǒng)ear和month信息

使用strptime和strftime實(shí)現(xiàn)字符串到datetime對象的轉(zhuǎn)換,

datetime_string = '2021-04-05'datetime_obj = datetime.datetime.strptime(datetime_string, '%Y-%m-%d')print(datetime_obj)print(datetime_obj.year)print(datetime_obj.month)

輸出:

2021-04-05 00:00:0020214

得到小時(shí)和分鐘信息類似,因?yàn)閐atetime對象有hour和minute屬性。

3,從日期字符串中得到星期幾的信息

在上面代碼的基礎(chǔ)上,添加下面的代碼:

print(datetime_obj.weekday())

輸出:

0

0代表的就是周一,但這樣不直觀,通過Python的calendar模塊可以讓輸出更直觀。

import calendarprint(calendar.day_name[datetime_obj.weekday()])

輸出:

Monday

4,得到當(dāng)前的周是本年的第幾周

為了得到這個(gè)結(jié)果,我們是不是要進(jìn)行復(fù)雜的數(shù)學(xué)計(jì)算,當(dāng)然不用,datetime模塊已經(jīng)集成了相關(guān)的函數(shù),通過調(diào)用datetime對象的函數(shù)ioscalendar就可以。

datetime_obj.isocalendar()

輸出:

(2021, 14, 1)

上面函數(shù)輸出的結(jié)果是一個(gè)三元組,其中第二個(gè)元素就是本周是今年的第幾個(gè)周。

5,實(shí)現(xiàn)datetime對象和Unix timestamp的轉(zhuǎn)換

Unix timestamp因?yàn)榉奖愠绦蛱幚恚趯?shí)際代碼編寫過程中經(jīng)常遇到,依賴datetime模塊可以非常方便地實(shí)現(xiàn)Unix timestamp和datetime對象的轉(zhuǎn)換,

from datetime import datetime# 得到當(dāng)前的日期和時(shí)間now = datetime.now()# 轉(zhuǎn)換當(dāng)前時(shí)間到時(shí)間戳timestamp = datetime.timestamp(now)print('Timestamp:', timestamp)#轉(zhuǎn)換時(shí)間戳到datetime對象datetime_obj = datetime.fromtimestamp(1617626697.906258)print('Datetime Object:',datetime_obj)

輸出:

Timestamp:1617626697.906258Datetime Object:2021-04-05 20:44:57.906258

6,時(shí)間跨度的計(jì)算

有時(shí)程序的判斷條件依賴過去或?qū)淼臅r(shí)間點(diǎn),這時(shí)可以使用datetime模塊的timedelta類。

from datetime import datetime, timedelta# 得到當(dāng)前時(shí)間now = datetime.now()print ('Today is:',now)#10天后的時(shí)間,如果用周計(jì)算,將days改為weeksdate_after_ten_days = now + timedelta(days = 10)print('Date after 10 days: ', date_after_ten_days)

輸出:

Today is: 2021-04-05 21:06:17.844471Date after 10 days: 2021-04-15 21:06:17.844471

總結(jié)

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多