亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Python之日期和時間包datetime的使用

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

1. 基本定義

1.1 時間戳

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

網上有很多時間戳在線轉換工具,可以自行計算驗證。

1.2 ISO日期

國際標準ISO 8601,是國際標準化組織的日期和時間的表示方法,全稱為《數據存儲和交換形式·信息交換·日期和時間的表示方法》。

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

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

其中各個元素說明如下:

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

2. 日期date

2.1 創(chuàng)建日期

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

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

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

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()獲取當前時間的時間戳

2.2 日期常用操作

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

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

具體用法舉例如下:

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()))

其結果如下:

補充: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. 時間time

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

其常用方法如下:

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

其具體用法如下:

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

其結果如下:

4. 日期時間datetime

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

舉例如下:

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

其結果如下:

其他常用方法如下:

方法作用
strptime()將字符串按照指定的格式轉化為日期時間變量
timestamp()返回日期對應的時間戳值
utcfromtimestamp()將POSIX時間戳轉化為UTC日期時間
utcnow()返回當前日期時間

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

具體如下:

5. 時間長度timedelta

時間長度timedelta表示兩個日期或日期時間類型變量的差值。

其使用如下:

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)

其結果如下:

這里要注意,計算兩個datetime變量的時間長度時,datetime變量必須在同一個時區(qū),否則會報錯:

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

具體如下:

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

總結

以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

  • 學懂Python字符編碼避免亂碼陷阱

    學懂Python字符編碼避免亂碼陷阱

    在Python編程中,處理字符編碼和亂碼問題是一個常見的挑戰(zhàn),特別是在處理文本數據、文件輸入/輸出和網絡通信時,可能會遇到各種字符編碼問題,本文章將深入探討Python中的亂碼問題,解釋其原理,并提供解決辦法,以確保你的應用程序能夠正確處理各種編碼情況
    2023-12-12
  • python開根號實例講解

    python開根號實例講解

    在本篇文章里小編給大家整理的是關于python開根號實例講解內容,有需要的朋友們可以參考下。
    2020-08-08
  • Python基于詞頻排序實現(xiàn)快速挖掘關鍵詞

    Python基于詞頻排序實現(xiàn)快速挖掘關鍵詞

    這篇文章主要為大家詳細介紹了Python如何基于詞頻排序實現(xiàn)快速挖掘關鍵詞功能,文中的示例代碼講解詳細,感興趣的小伙伴可以了解一下
    2023-03-03
  • python2.7讀取文件夾下所有文件名稱及內容的方法

    python2.7讀取文件夾下所有文件名稱及內容的方法

    python,本身來說是一門高級編程語言,python它入門簡單,有基礎的學起來很快就能有簡單的應用,但是在非常高的抽象計算中,高級的python程序設計也是非常難學的。接下來給大家介紹python2.7讀取文件夾下所有文件名稱及內容的方法,一起看看吧
    2018-02-02
  • python解決字典中的值是列表問題的方法

    python解決字典中的值是列表問題的方法

    這篇文章主要介紹了字典中的值是列表問題,先用value連成一個str,最后用str.split()作一個轉換,生成一個列表.看了python cookbook,上面正好有一個recipe講到如何處理這樣的問題
    2013-03-03
  • Python實現(xiàn)定時執(zhí)行任務的三種方式簡單示例

    Python實現(xiàn)定時執(zhí)行任務的三種方式簡單示例

    這篇文章主要介紹了Python實現(xiàn)定時執(zhí)行任務的三種方式,結合簡單實例形式分析了Python使用time,os,sched等模塊定時執(zhí)行任務的相關操作技巧,需要的朋友可以參考下
    2019-03-03
  • 淺談python requests 的put, post 請求參數的問題

    淺談python requests 的put, post 請求參數的問題

    今天小編就為大家分享一篇淺談python requests 的put, post 請求參數的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-01-01
  • python解析含有重復key的json方法

    python解析含有重復key的json方法

    今天小編就為大家分享一篇python解析含有重復key的json方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-01-01
  • 基于Python3.6+splinter實現(xiàn)自動搶火車票

    基于Python3.6+splinter實現(xiàn)自動搶火車票

    這篇文章主要為大家詳細介紹了基于Python3.6+splinter實現(xiàn)自動搶火車票,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-09-09
  • 關于flask路由app.route及路由參數的各種用法解析

    關于flask路由app.route及路由參數的各種用法解析

    我們在開發(fā)過程中,編寫項目時所使用的路由往往是指代了框架/項目中用于完成路由功能的類,這個類一般就是路由類,簡稱路由,這篇文章主要介紹了有關flask路由app.route及路由參數的各種用法解析,需要的朋友可以參考下
    2024-03-03

最新評論