国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

Python時(shí)間模塊,超實(shí)用總結(jié)!

開(kāi)發(fā) 后端
Python內(nèi)置一個(gè)時(shí)間模塊datetime,提供我們關(guān)于時(shí)間的表達(dá)。記錄時(shí)間無(wú)所不在,日志文件,程序運(yùn)行起始時(shí)間和時(shí)長(zhǎng),銷(xiāo)量預(yù)測(cè)的特征等等,我們都能看到時(shí)間的身影。

今天是Python時(shí)間模塊核心使用邏輯。本篇思維導(dǎo)圖如下:

Python內(nèi)置一個(gè)時(shí)間模塊datetime,提供我們關(guān)于時(shí)間的表達(dá)。記錄時(shí)間無(wú)所不在,日志文件,程序運(yùn)行起始時(shí)間和時(shí)長(zhǎng),銷(xiāo)量預(yù)測(cè)的特征等等,我們都能看到時(shí)間的身影。

這篇專(zhuān)題總結(jié)datetime模塊最主要用法,希望通過(guò)此文,大家使用那些時(shí)間處理的常用API時(shí),能信手拈來(lái),不用help函數(shù),不用搜索。

1. 核心邏輯

datetime模塊提供日期和時(shí)間各自分類(lèi)的對(duì)象,日期處理相關(guān)的對(duì)象date,時(shí)間處理相關(guān)的time,日期和時(shí)間的完整結(jié)合對(duì)象datetime.

日期和時(shí)間的加減操作得到timedelta對(duì)象.

此時(shí)此刻 2020-8-28 21:45,這個(gè)時(shí)間是本地時(shí)間,很明顯紐約時(shí)間肯定不是此值,柏林時(shí)間也肯定不是這個(gè)值。Python為支持不同地區(qū)的時(shí)間表達(dá),特意抽象出tzinfo對(duì)象,并有一個(gè)默認(rèn)實(shí)現(xiàn)對(duì)象.

以上就是datetime模塊的幾個(gè)核心對(duì)象以及對(duì)應(yīng)的現(xiàn)實(shí)意義。

2. date、time和datetime對(duì)象

下面介紹最基本3個(gè)對(duì)象的最基本用法。首先,從datetime模塊導(dǎo)入3個(gè)對(duì)象

  1. In [1]: from datetime import date,time,datetime     

構(gòu)造一個(gè)日期date實(shí)例,2020年9月1日:

  1. In [2]: date(2020,9,1)                                                           
  2. Out[2]: datetime.date(2020, 9, 1) 

構(gòu)造一個(gè)時(shí)間time實(shí)例,10點(diǎn)10分0秒:

  1. In [3]: time(10,10,0)                                                            
  2. Out[3]: datetime.time(10, 10) 

構(gòu)造一個(gè)日期+時(shí)間的完整datetime實(shí)例,2020年9月1日 10點(diǎn)10分0秒:

  1. In [4]: datetime(2020,9,1,10,10,10)                                              
  2. Out[4]: datetime.datetime(2020, 9, 1, 10, 10, 10) 

自己構(gòu)造時(shí)間沒(méi)什么意義,更有意義的是打印當(dāng)前時(shí)間,比如此時(shí)程序啟動(dòng)打印下時(shí)間,如果程序可能運(yùn)行十幾天,很明顯使用日期+時(shí)間的完整datetime實(shí)例。

此方法歸屬于datetime類(lèi)上的方法,所以無(wú)須構(gòu)造datetime實(shí)例,直接如下:

  1. datetime.today() # datetime類(lèi)的today方法 
  2. Out[5]: datetime.datetime(2020, 8, 28, 22, 0, 47, 439509) 

打印結(jié)果顯示年月日時(shí)分秒毫秒 還可以使用類(lèi)方法now:

  1. In [6]: datetime.now()                                                           
  2. Out[6]: datetime.datetime(2020, 8, 28, 22, 1, 28, 737166) 

直接打印當(dāng)前時(shí)間,返回日期+時(shí)間的字符串結(jié)果:

  1. In [7]: print(datetime.now())                            
  2. 2020-08-28 22:02:57.217572 

如果我們不想顯示毫秒,這就涉及到日期+時(shí)間的打印格式化問(wèn)題。使用datetime類(lèi)方法strftime(string format time),用法如下:

  1. In [8]: datetime.strftime(datetime.now(),'%Y-%m-%d %H:%M:%S')                    
  2. Out[8]: '2020-08-28 22:06:20' 

這就涉及到打印格式化字符,常用的幾個(gè):

如果讀入一個(gè)時(shí)間列,此時(shí)type為str,為了對(duì)此作時(shí)間運(yùn)算,需要將其轉(zhuǎn)化為datetime,使用strptime(string parse time),它是datetime的類(lèi)方法:

  1. In [11]: datetime.strptime('2020-08-28 22:06:20','%Y-%m-%d %H:%M:%S')            
  2. Out[11]: datetime.datetime(2020, 8, 28, 22, 6, 20) 

字符型日期+時(shí)間要想正確轉(zhuǎn)化為datetime對(duì)象,字符串和格式必須要匹配,否則會(huì)拋錯(cuò):

  1. In [13]: datetime.strptime('2020-08-28 22:06:20',\ 
  2.                            '%Y/%m/%d %H:%M:%S')  
  3.  
  4. ValueError: time data '2020-08-28 22:06:20'  
  5. does not match format '%Y/%m/%d %H:%M:%S' 

3. 基本運(yùn)算

有時(shí)需要求偏離某個(gè)時(shí)間的時(shí)間,timedelta對(duì)象能滿足此需求。

比如,求當(dāng)前時(shí)間的前12小時(shí)的日期+時(shí)間。

首先,導(dǎo)入timedelta類(lèi):

  1. In [15]: from datetime import timedelta      

直接使用當(dāng)前時(shí)間減去timedelta表示的12小時(shí)長(zhǎng)度,注意第一個(gè)參數(shù)的含義為days,所以除以 24:

  1. In [16]: datetime.now() - timedelta(12/24)                                       
  2. Out[16]: datetime.datetime(2020, 8, 28, 10, 22, 44, 287246) 

由上面這個(gè)用法,可以總結(jié)為:

datetime1 - timedelta1 = datetime2

所以 datetime1 - datetime2 = timedelta1,故兩個(gè)時(shí)間相減得到timedelta類(lèi)型的實(shí)例。

除此之外,還有一個(gè)小方法,可能會(huì)用到,就是datetime類(lèi)上的combine方法,它能組合date實(shí)例和time實(shí)例為datetime實(shí)例,如下所示:

  1. In [17]: datetime.combine(date(2020,9,1),time(10,10,0))                          
  2. Out[17]: datetime.datetime(2020, 9, 1, 10, 10) 

4 關(guān)于tzinfo

為了更好統(tǒng)一全球時(shí)間,世界規(guī)定了一個(gè)UTC時(shí)間,即全球統(tǒng)一時(shí)間,比如假設(shè)與之相比北京時(shí)間比它早8小時(shí),曼谷比它早7小時(shí)等。

比如打印當(dāng)前時(shí)間時(shí),

  1. ```python 
  2. In [6]: print(datetime.now()) 
  3. 2020-08-28 22:33:35.393709       

以上顯示的這個(gè)時(shí)間,其實(shí)并不完整,我當(dāng)然明白它是我所在地的時(shí)間,但是其他國(guó)家的開(kāi)發(fā)者看到這個(gè)時(shí)間時(shí),或許以為是UTC標(biāo)準(zhǔn)下的時(shí)間。若是這樣解讀,顯然會(huì)和實(shí)際有一個(gè)時(shí)差問(wèn)題。

有的讀者會(huì)說(shuō),我在打印格式化時(shí)添加時(shí)區(qū)信息可以嗎,我們實(shí)驗(yàn)一下:

  1. In [19]: datetime.strftime(datetime.now(),\ 
  2.                            '%Y-%m-%d %H:%M:%S %Z')                
  3. Out[19]: '2020-08-28 22:39:44 ' 

時(shí)區(qū)信息為空,所以沒(méi)能解決問(wèn)題。之所以時(shí)區(qū)信息會(huì)為空,是因?yàn)閐atetime.now()時(shí)未給定tzinfo值。

所以,我們需要自己重新定義一個(gè)tzinfo,即實(shí)現(xiàn)一個(gè)tzinfo對(duì)象。

此類(lèi)BJinfo繼承tzinfo,然后實(shí)現(xiàn)其中的3個(gè)方法:

  1. from datetime import tzinfo 
  2.  
  3. class BJinfo(tzinfo): 
  4.     """BJinfo""" 
  5.     def utcoffset(self, dt): 
  6.         return timedelta(hours=8
  7.  
  8.     def tzname(self, dt): 
  9.         return "UTC 8" 
  10.  
  11.     def dst(self, dt): 
  12.         return timedelta(hours=8

此時(shí)再打印當(dāng)前時(shí)間時(shí),賦上tzinfo值:

  1. nowt = datetime.now(tz=BJinfo()) 
  2. In [32]: In [6]: print(nowt)                                
  3. 2020-08-28 22:52:20.328446+08:00 

再格式化打印時(shí)區(qū)信息:

  1. ...:     '%Y-%m-%d %H:%M:%S %Z')                      
  2. 36]: '2020-08-28 22:52:20 UTC 8' 

透過(guò)時(shí)區(qū)信息BJinfo 定義的三個(gè)方法,便能確認(rèn)時(shí)間2020-08-28 22:52:20是比UTC快8個(gè)小時(shí)的時(shí)區(qū)下,所對(duì)應(yīng)的一個(gè)時(shí)間。

總結(jié)

以上就是本專(zhuān)題對(duì)datetime模塊核心對(duì)象的使用總結(jié),大綱如下:

  • 核心邏輯
  • date、time和datetime對(duì)象
  • 基本運(yùn)算
  • 關(guān)于tzinfo

 

 

責(zé)任編輯:趙寧寧 來(lái)源: Python與算法社區(qū)
相關(guān)推薦

2018-09-07 23:38:45

小程序開(kāi)發(fā)框架

2022-01-17 10:50:15

Python代碼內(nèi)存

2025-03-04 10:49:51

2020-12-23 11:08:10

Python代碼文本

2024-02-01 18:06:04

Python編程系統(tǒng)

2022-08-07 10:44:00

JSONPython對(duì)象

2015-03-20 17:05:17

PaaS公有云云服務(wù)

2022-04-29 08:15:40

Python技巧Max

2025-02-17 10:50:37

2022-04-19 13:07:25

SchedulePython

2023-01-29 09:18:14

ScrollendJavaScript事件

2015-09-10 10:20:49

2022-07-29 09:01:20

Chrome試源代碼調(diào)試技巧

2010-03-03 13:39:41

Python os模塊

2024-02-23 18:17:57

Python腳本開(kāi)發(fā)

2013-12-12 17:14:10

Linuxvim

2020-08-27 13:45:24

Linux監(jiān)控工具命令

2020-04-21 15:30:39

Spring Boot郵件Java

2011-03-16 10:12:32

2019-08-16 09:22:38

技術(shù)調(diào)試互聯(lián)網(wǎng)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

欧美一区三区四区| 欧美日韩中文在线| 91在线高清视频| 在线观看欧美| 在线播放91灌醉迷j高跟美女| 伊人av免费在线观看| 亚洲精品国产高清久久伦理二区| 日韩欧美在线播放视频| 免费大片在线观看www| 丝袜亚洲另类欧美重口| 国产在线a不卡| 四虎影视在线观看2413| 日本男女交配视频| 九九热这里有精品| 日本精品一区二区三区四区| 精品亚洲aⅴ乱码一区二区三区| 国产精品视频免费观看| 欧美日韩第一区| 91在线色戒在线| 99精品国产一区二区三区2021| 99久久精品无码一区二区毛片 | 在线视频国产区| 亚洲18色成人| 麻豆影视在线观看| av成人激情| 欧美日韩大片一区二区三区| 久久精品在线观看| 亚洲自拍小视频免费观看| 婷婷综合在线| 国产日韩av在线播放| 91成人看片| 91手机在线观看| 精品不卡视频| 欧美一级日本a级v片| 免费高清成人在线| 女人被男人躁得好爽免费视频| av成人免费在线观看| 国产成人黄色网址| 欧美日韩国内自拍| 蜜桃视频在线观看免费视频网站www| 在线免费观看视频黄| 91免费精品国自产拍在线不卡| 中文字幕日韩视频| av在线亚洲一区| 在线免费看污| 色香色香欲天天天影视综合网| 国产精品国产三级国产专区53 | 亚洲精品一级二级三级| 97视频在线看| 福利微拍一区二区| 日本在线视频一区二区三区| 亚洲天堂男人的天堂| jizz免费一区二区三区| 国产精品成人3p一区二区三区| 久久精品91久久久久久再现| 色天下一区二区三区| 99re在线视频观看| 久久精品国产99| 色欲色香天天天综合网www| 自拍偷拍亚洲| 麻豆av免费在线| 日本高清成人免费播放| 视频在线不卡| 亚洲第一福利网站| 欧美一级三级| 日本欧美精品久久久| 国产精品区一区二区三| 欧美成人视屏| 欧美俄罗斯性视频| 亚洲中字黄色| 嫩草影院在线观看网站成人| 日韩女优视频免费观看| 欧美人与拘性视交免费看| 中文字幕一区二区中文字幕| 亚洲一区二区在线观看视频| 另类专区亚洲| 国产一级二级三级精品| 中文字幕国产一区| 天堂av最新在线| 国产成人综合精品| 成人丝袜视频网| 免费黄色在线观看| 国产精品成人aaaaa网站| 国产麻豆91精品| 狠狠色伊人亚洲综合网站l| 欧美另类极品videosbestfree| 国产精品毛片在线| 午夜在线免费视频| 日韩在线视频免费观看| 99精品视频免费观看视频| 欧美三级午夜理伦三级富婆| 亚洲电影在线观看| 女主播福利一区| 亚洲jizzjizz妇女| 最近2019中文字幕在线高清| 亚洲国产第一| 成人在线小说| 欧美激情精品久久久久久久变态| 久久精品国产成人一区二区三区| 巨骚激情综合| 国产精品入口尤物| 国产拍揄自揄精品视频麻豆| 极品av在线| 久久精品国产精品青草色艺| 一区二区三区四区在线播放 | 欧美在线视频不卡| 国产探花一区在线观看| 日本大片免费看| 亚洲第一区在线观看| 亚洲精品日产精品乱码不卡| 激情黄产视频在线免费观看| 国产在线超碰| 秋霞av国产精品一区| 丁香婷婷综合色啪| 特级毛片在线| 国产日韩一区二区三区| 亚洲午夜激情网页| 成人av综合网| 国产精品va无码一区二区| 亚洲激情在线观看| 久久人人超碰| 在线观看男女av免费网址| 精品久久蜜桃| 欧美人动与zoxxxx乱| 国产精品porn| 激情在线视频| 国产精品久久久久久久久久久久午夜片| 最新国产在线| 日韩精品一区二区三区久久| 91国产视频在线| 欧美激情在线一区二区| 欧美一级视频在线播放| 亚洲精品suv精品一区二区| 欧美亚洲三区| 天堂va在线| 欧美主播一区二区三区美女 久久精品人 | 亚洲欧美日韩综合aⅴ视频| 国产三级电影在线播放| 久久婷婷人人澡人人喊人人爽| 色午夜这里只有精品| 国产视频一区不卡| 国产图片一区| 国产私人尤物无码不卡| 99精品人妻少妇一区二区| 中文字幕欧美日韩在线| jlzzjlzz国产精品久久| 99亚洲伊人久久精品影院红桃| 国内精品二区| 日韩精品影音先锋| 强制捆绑调教一区二区| 欧美精品日日操| 天堂8在线天堂资源bt| 久久精品人人爽| 亚洲欧洲精品天堂一级| 偷拍欧美精品| 中文字幕在线三区| 欧美狂野激情性xxxx在线观| 欧美重口另类| 最近中文字幕mv第三季歌词| 免费看欧美黑人毛片| 亚洲欧美激情一区| 久久影院视频免费| 大伊香蕉精品在线品播放| 2222www色视频在线观看| 99国产超薄丝袜足j在线观看 | 久久人人超碰精品| 国产一区二区三区四区| eeuss影院在线播放| 中文字幕一区二区三区四区五区六区 | 国产一区二区三区国产| 99久久婷婷国产综合精品首页| 成人国产在线视频| 精品一卡二卡三卡四卡日本乱码| 欧美精品在欧美一区二区少妇| 日本道色综合久久影院| 亚洲一区二区三区四区在线播放| 成人免费激情视频| 日韩欧美视频第二区| 日韩av在线第一页| 影音先锋中文在线视频| 希岛爱理一区二区三区| 亚洲欧洲日韩一区二区三区| 欧美日韩在线直播| 色哟哟在线观看一区二区三区| 亚洲高清一区二区三区| 日韩一区二区三| 日本中文字幕成人| 无码免费一区二区三区免费播放| 毛片在线视频播放| 污视频网站在线免费| 欧美码中文字幕在线| 免费日本视频一区| 欧美体内谢she精2性欧美| 久久久久久久色| 日韩欧美第二区在线观看| 在线视频色在线| 卡通动漫精品一区二区三区| 91色视频在线| 欧美久久高跟鞋激| 欧美成人精品激情在线观看|