最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python之日期和時(shí)間包datetime的使用

 更新時(shí)間:2024年06月29日 10:34:43   作者:Sun_Sherry  
這篇文章主要介紹了Python之日期和時(shí)間包datetime的使用方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

1. 基本定義

1.1 時(shí)間戳

時(shí)間戳是指格林威治時(shí)間1970年01月01日00時(shí)00分00秒(北京時(shí)間1970年01月01日08時(shí)00分00秒)起至現(xiàn)在的總秒數(shù)(或總毫秒數(shù))。

網(wǎng)上有很多時(shí)間戳在線轉(zhuǎn)換工具,可以自行計(jì)算驗(yàn)證。

1.2 ISO日期

國際標(biāo)準(zhǔn)ISO 8601,是國際標(biāo)準(zhǔn)化組織的日期和時(shí)間的表示方法,全稱為《數(shù)據(jù)存儲(chǔ)和交換形式·信息交換·日期和時(shí)間的表示方法》。

關(guān)于該文件可以參考:ISO 8601。ISO日期的常用格式如下:

YYYY-MM-DDThh:mm:ss[.mmm]TZD

其中各個(gè)元素說明如下:

元素說明
YYYY年由4位數(shù)組成,以公歷公元1年為0001年,以公元前1年為0000年,公元前2年為-0001年,其他以此類推。
MM表示2位數(shù)的月份,從01到12
DD表示2位數(shù)的天,從01到31
T用來指示時(shí)間元素的開始字符
hh表示兩位數(shù)的小時(shí),從00到23,不包括AM/PM
mm表示兩位數(shù)的分鐘,從00到59
ss表示兩位數(shù)的秒,從00到59
mmm表示三位數(shù)的毫秒數(shù),從000到999
TZDTZD表示時(shí)區(qū)指示符:Z或+hh:mm或-hh:mm,+或-表示時(shí)區(qū)距離UTC(世界標(biāo)準(zhǔn)時(shí)間)時(shí)區(qū)多遠(yuǎn)。例如,中國標(biāo)準(zhǔn)時(shí)間以北京所在的東八區(qū)位準(zhǔn),即為:+08:00

2. 日期date

2.1 創(chuàng)建日期

可以使用datetime中的date類來構(gòu)建日期,其常用方法如下:

  • date.fromisocalendar():使用年、周數(shù)、星期構(gòu)建日期;
  • date.fromisoformat(): 使用字符串形式的ISO日期創(chuàng)建日期變量;
  • date.fromordinal(): 創(chuàng)建序數(shù)對(duì)應(yīng)的日期。1對(duì)應(yīng)0001-01-01,2對(duì)應(yīng)0001-01-02,以此類推;
  • date.fromtimestamp(): 獲取時(shí)間戳對(duì)應(yīng)的日期;
  • date.today(): 獲取當(dāng)前日期;

舉例如下:以下代碼中day1、day2、day3的結(jié)果均為2022-07-06,day3和day5的結(jié)果為當(dāng)前日期;

from datetime import date
import time

day1=date.fromisocalendar(2022,27,3)
day2=date.fromisoformat('2022-07-06')
day3=date.today()
day4=date.fromordinal(738342)
day5=date.fromtimestamp(time.time()) #time.time()獲取當(dāng)前時(shí)間的時(shí)間戳

2.2 日期常用操作

使用date創(chuàng)建的日期變量的常用屬性和方法如下:

屬性或方法作用
day\month\year獲取日期變量的年、月、日等屬性信息
ctime()將日期轉(zhuǎn)化為ctime()格式
isocalendar()將日期轉(zhuǎn)化為日歷格式
isoformat()將日期轉(zhuǎn)化為ISO 8601格式:YYYY-MM-DD
toordinal()返回當(dāng)前日期的序數(shù)
isoweekday()獲取當(dāng)前日期的星期數(shù),Mon=1, … \dots …,Sun=7
weekday()獲取當(dāng)前日期的星期數(shù),Mon=0, … \dots …, Sun=6
strftime()按指定格式輸出日期
replace()修改日期指定部分生成新的日期變量
timetuple()以tuple返回日期的各個(gè)部分

具體用法舉例如下:

from datetime import date
day1=date.fromisocalendar(year=2022, week=27, day=5)
#返回年/月/日
day,month,year=day1.day,day1.month,day1.year
print("年:{},月:{},日:{}".format(year,month,day))
#返回星期
weekday1,weekday=day1.isoweekday(),day1.weekday()
print("ISO格式的星期:{},普通格式的星期:{}".format(weekday1,weekday))
#返回指定格式的日期
str_date=day1.strftime('%Y/%m/%d')
print("指定格式的日期:{}".format(str_date))
#修改日期
day2=day1.replace(year=2021)
print("ctime()格式的新日期:{}".format(day2.ctime()))

其結(jié)果如下:

補(bǔ)充:strftime()中format代碼如下:

%Y  Year with century as a decimal number.
%m  Month as a decimal number [01,12].
%d  Day of the month as a decimal number [01,31].
%H  Hour (24-hour clock) as a decimal number [00,23].
%M  Minute as a decimal number [00,59].
%S  Second as a decimal number [00,61].
%z  Time zone offset from UTC.
%a  Locale's abbreviated weekday name.
%A  Locale's full weekday name.
%b  Locale's abbreviated month name.
%B  Locale's full month name.
%c  Locale's appropriate date and time representation.
%I  Hour (12-hour clock) as a decimal number [01,12].
%p  Locale's equivalent of either AM or PM.

3. 時(shí)間time

datetime中的time類提供了時(shí)間變量的定義及其常用操作。

其常用方法如下:

屬性或方法作用
fromisoformat()使用字符串形式的ISO時(shí)間創(chuàng)建時(shí)間變量
hour\minute\second\microsecond獲取時(shí)間變量的時(shí)、分、秒、毫秒屬性
isoformat()將時(shí)間變量按照ISO的時(shí)間格式輸出
strftime()將時(shí)間便變量按指定格式輸出
replace()替換時(shí)間變量的部分屬性生成新的時(shí)間變量

其具體用法如下:

from datetime import time
#創(chuàng)建時(shí)間
t1=time.fromisoformat('07:24:38')
#返回時(shí)、分、秒等信息
h,m,s=t1.hour,t1.minute,t1.second
print("時(shí):{},分:{},秒:{}".format(h,m,s))
t1_str=t1.strftime('%H:%M:%S')
print("指定格式的時(shí)間為:{}".format(t1_str))
t2=t1.replace(minute=45)
print("ISO格式的時(shí)間為:{}".format(t2))

其結(jié)果如下:

4. 日期時(shí)間datetime

除了分別創(chuàng)建日期變量和時(shí)間變量之外,datetime中的datetime類可以直接創(chuàng)建日期時(shí)間變量,這種變量的創(chuàng)建及其常用操作與日期變量和時(shí)間變量類似,這里只做簡單介紹。

舉例如下:

from datetime import datetime
#創(chuàng)建日期時(shí)間格式
dt1=datetime.fromisoformat('2022-07-08 12:23:45')
dt2=datetime.now() #當(dāng)前日期時(shí)間
#返回相關(guān)屬性
print("當(dāng)前日期時(shí)間:{}".format(dt2.isoformat()))
y,m,d,h,m1,s=dt1.year,dt1.month,dt1.day,dt1.hour,dt1.minute,dt1.second
print("年:{},月:{},日:{},時(shí):{},分:{},秒:{}".format(y,m,d,h,m1,s))
dt3=dt1.replace(day=1)
print("指定格式的日期時(shí)間:{}".format(dt3.strftime('%Y/%m/%d %H:%M:%S')))

其結(jié)果如下:

其他常用方法如下:

方法作用
strptime()將字符串按照指定的格式轉(zhuǎn)化為日期時(shí)間變量
timestamp()返回日期對(duì)應(yīng)的時(shí)間戳值
utcfromtimestamp()將POSIX時(shí)間戳轉(zhuǎn)化為UTC日期時(shí)間
utcnow()返回當(dāng)前日期時(shí)間

這里有一點(diǎn)要說明,datetime包中的ISO日期格式似乎與ISO 8601中的格式不完全一致,datetime中的ISO日期格式為:YYYY-MM-DDT[HH[:MM[:SS[.mmm[uuu]]]]][+HH:MM],這里不能使用時(shí)區(qū)指示’Z’。

具體如下:

5. 時(shí)間長度timedelta

時(shí)間長度timedelta表示兩個(gè)日期或日期時(shí)間類型變量的差值。

其使用如下:

from datetime import date,time,datetime,timedelta

date1=date.fromisoformat('2022-07-06')
date2=date.fromisoformat('2022-08-13')
td1=date2-date1
print(td1)

dt1=datetime.fromisoformat('2022-08-13T13:32:23+08:00')
dt2=datetime.fromisoformat('2022-08-13T12:23:34+08:00')
td2=dt2-dt1
print(td2)

其結(jié)果如下:

這里要注意,計(jì)算兩個(gè)datetime變量的時(shí)間長度時(shí),datetime變量必須在同一個(gè)時(shí)區(qū),否則會(huì)報(bào)錯(cuò):

can’t subtract offset-naive and offset-aware datetimes

具體如下:

在上述案例中,dt1表示的是東八區(qū)的時(shí)間,dt2是世界協(xié)調(diào)時(shí)。

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • 簡單介紹Python下自己編寫web框架的一些要點(diǎn)

    簡單介紹Python下自己編寫web框架的一些要點(diǎn)

    這篇文章主要介紹了簡單介紹Python下自己編寫web框架的一些要點(diǎn),示例代碼基于Python2.x版本,需要的朋友可以參考下
    2015-04-04
  • python+VTK環(huán)境搭建及第一個(gè)簡單程序代碼

    python+VTK環(huán)境搭建及第一個(gè)簡單程序代碼

    這篇文章主要介紹了python+VTK環(huán)境搭建及第一個(gè)簡單程序代碼,簡單介紹了vtk,然后分享了安裝步驟,最后涉及一個(gè)簡單的代碼示例,具有一定借鑒價(jià)值,需要的朋友可以參考下。
    2017-12-12
  • Windows下Python3.6安裝第三方模塊的方法

    Windows下Python3.6安裝第三方模塊的方法

    這篇文章主要介紹了Windows下Python3.6安裝第三方模塊的方法,需要的朋友可以參考下
    2018-11-11
  • python網(wǎng)絡(luò)爬蟲精解之pyquery的使用說明

    python網(wǎng)絡(luò)爬蟲精解之pyquery的使用說明

    PyQuery是一個(gè)類似于jQuery的解析網(wǎng)頁工具,使用lxml操作xml和html文檔,它的語法和jQuery很像。和XPATH,Beautiful Soup比起來,PyQuery更加靈活,提供增加節(jié)點(diǎn)的class信息,移除某個(gè)節(jié)點(diǎn),提取文本信息等功能
    2021-09-09
  • Python使用Spire.Doc for Python自動(dòng)化編輯Word文檔

    Python使用Spire.Doc for Python自動(dòng)化編輯Word文檔

    在數(shù)字化辦公日益普及的今天,Word 文檔作為信息承載與交流的核心工具,本文將介紹如何使用 Spire.Doc for Python 來編輯現(xiàn)有的 Word 文檔,有需要的小伙伴可以了解下
    2025-12-12
  • 在Python中使用列表生成式的教程

    在Python中使用列表生成式的教程

    這篇文章主要介紹了在Python中使用列表生成式的教程,列表生成式是Python具有的重要特性,需要的朋友可以參考下
    2015-04-04
  • 解決Python3中的中文字符編碼的問題

    解決Python3中的中文字符編碼的問題

    Unicode是一32位編碼格式,不適合用來傳輸和存儲(chǔ),所以必須轉(zhuǎn)換成utf-8,gbk等等。這篇文章主要介紹了Python3中的解決中文字符編碼的問題,需要的朋友可以參考下
    2018-07-07
  • 如何利用python實(shí)現(xiàn)windows的批處理及文件夾操作

    如何利用python實(shí)現(xiàn)windows的批處理及文件夾操作

    最近工作中需要幾個(gè)腳本運(yùn)行其他程序,幾乎像一個(gè)Windows批處理文件,這篇文章主要給大家介紹了關(guān)于如何利用python實(shí)現(xiàn)windows的批處理及文件夾操作的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-01-01
  • python 實(shí)現(xiàn)漢諾塔游戲

    python 實(shí)現(xiàn)漢諾塔游戲

    這篇文章主要介紹了python 實(shí)現(xiàn)漢諾塔游戲的示例,幫助大家更好的理解和學(xué)習(xí)python,感興趣的朋友可以了解下
    2020-11-11
  • python之virtualenv的簡單使用方法(必看篇)

    python之virtualenv的簡單使用方法(必看篇)

    下面小編就為大家分享一python之virtualenv的簡單使用方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2017-11-11

最新評(píng)論

四会市| 景谷| 安塞县| 东阳市| 绵阳市| 宁明县| 仁化县| 日土县| 台江县| 浦县| 兖州市| 钟祥市| 马尔康县| 祥云县| 和硕县| 高台县| 彰化市| 南宁市| 通化县| 宝鸡市| 三门县| 海宁市| 同德县| 苍山县| 如东县| 刚察县| 福鼎市| 澎湖县| 福建省| 巧家县| 冀州市| 孝感市| 德令哈市| 宜阳县| 吉林市| 湖南省| 山东省| 南华县| 镇赉县| 阿拉尔市| 闽侯县|