摘要:中提供了一個(gè)和的模塊可以用來做格式化日期和時(shí)間的。格式化日期通過模塊中方法來格式化日期函數(shù)接收時(shí)間元組并返回以可讀字符串表示薪資的時(shí)間格式的話由參數(shù)決定。每日寬度間隔為字符每行的長(zhǎng)度為是每星期的行數(shù)。
我們可以通過學(xué)習(xí)在Python中對(duì)日期時(shí)間的處理,可以在快速的完成工作,比如:
將日期時(shí)間作為日志信息的內(nèi)容輸入
計(jì)算某一個(gè)功能的執(zhí)行時(shí)間
用日期命名一個(gè)文件的名稱
記錄或者展示文件的發(fā)布或修改時(shí)間
其他工作
在Python的程序可以使用很多的方式處理日期和時(shí)間,轉(zhuǎn)換日期格式是一個(gè)常見的功能。Python中提供了一個(gè)time和calender的模塊可以用來做格式化日期和時(shí)間的。時(shí)間間隔都是以秒為單位的浮點(diǎn)小數(shù)。
在電腦中的時(shí)間都是由CPU儲(chǔ)存,所以一般呢也叫做CPU時(shí)間, cpu時(shí)間是計(jì)算從1970年1月1日0點(diǎn)0分到目前這個(gè)時(shí)間點(diǎn)所經(jīng)歷的的秒數(shù)來表示,同時(shí)又可以稱為時(shí)間戳。
1.time模塊
1.1導(dǎo)入time模塊
首先使用import導(dǎo)入time模塊
1.2查看時(shí)間戳
使用time.time函數(shù)查看當(dāng)前的時(shí)間戳為多少,time.time的作用是返回當(dāng)前時(shí)間的時(shí)間戳
1.3返回當(dāng)?shù)貢r(shí)間
使用time.localtime函數(shù),將當(dāng)前時(shí)間戳返回為本地的時(shí)間,返回的參數(shù)有9個(gè):
序號(hào)屬性字段值0Tm_year4位數(shù)年20081tm_mon月1-122tm_mday日1-313tm_hour小時(shí)0-234tm_min分鐘0-595tm_sec秒0-61(60或61 是閏秒)6tm_wday一周的第幾日0-6(0為周一)7tm_yday一年的第幾日1-365(儒略歷)8tm_isdst夏令時(shí)-1,0,1 -1是決定是否為夏令時(shí)的旗幟
可以通過這9個(gè)返回的參數(shù)判斷當(dāng)前的時(shí)間
1.4暫停代碼運(yùn)行時(shí)間
time.sleep暫停代碼的運(yùn)行時(shí)間,time.sleep函數(shù)的作用是推遲調(diào)用線程的運(yùn)行,可以通過參數(shù)Secs指秒數(shù),表示進(jìn)程掛起的時(shí)間。
1.5計(jì)算時(shí)間點(diǎn)
函數(shù)time.clock是以浮點(diǎn)數(shù)計(jì)算的秒數(shù)返回當(dāng)前的CPU時(shí)間。這個(gè)函數(shù)在不同的系統(tǒng)上的含義也是不同的, 在UNIX系統(tǒng)上,它返回的是"進(jìn)程時(shí)間",它是用秒表示的浮點(diǎn)數(shù)(時(shí)間戳)。而在WINDOWS中,第一次調(diào)用,返回的是進(jìn)程運(yùn)行的實(shí)際時(shí)間。而第二次之后的調(diào)用是自第一次調(diào)用以后到現(xiàn)在的運(yùn)行時(shí)間。(實(shí)際上是以WIN32上QueryPerformanceCounter為基礎(chǔ),它比毫秒表示更為精確)
1.6獲取格式化的時(shí)間
我們可以根據(jù)需求選取各種格式,但是最簡(jiǎn)單的獲取可讀的時(shí)間模式的函數(shù)是asctime:
Time.asctime函數(shù)接受時(shí)間元組并返回一個(gè)可讀的形式”5月7日,周天,13點(diǎn)20分26秒,2017年”的24個(gè)字符的字符串。參數(shù)是9個(gè)元素的元組或者通過函數(shù)Gmtime或localtime函數(shù)返回的時(shí)間值。
1.7格式化日期
通過time模塊中strftime方法來格式化日期:
Time.strftime函數(shù)接收時(shí)間元組,并返回以可讀字符串表示薪資的時(shí)間,格式的話由參數(shù)format決定。
1.8解析時(shí)間
Time.strptime(str,fmt=’%a %b %d %H:%M:%S %Y’)根據(jù)fromt的格式把一個(gè)時(shí)間字符串解析為時(shí)間元組。
在Python中有22個(gè)時(shí)間日期的格式化符號(hào),通過這些符號(hào)就可以設(shè)置參數(shù)format了:
%y 兩位數(shù)的年份表示(00-99)
%Y 四位數(shù)的年份表示(000-9999)
%m 月份(01-12)
%d 月內(nèi)中的一天(0-31)
%H 24小時(shí)制小時(shí)數(shù)(0-23)
%I 12小時(shí)制小時(shí)數(shù)(01-12)
%M 分鐘數(shù)(00=59)
%S 秒(00-59)
%a 本地簡(jiǎn)化星期名稱
%A 本地完整星期名稱
%b 本地簡(jiǎn)化的月份名稱
%B 本地完整的月份名稱
%c 本地相應(yīng)的日期表示和時(shí)間表示
%j 年內(nèi)的一天(001-366)
%p 本地A.M.或P.M.的等價(jià)符
%U 一年中的星期數(shù)(00-53)星期天為星期的開始
%w 星期(0-6),星期天為星期的開始
%W 一年中的星期數(shù)(00-53)星期一為星期的開始
%x 本地相應(yīng)的日期表示
%X 本地相應(yīng)的時(shí)間表示
%Z 當(dāng)前時(shí)區(qū)的名稱
%% %號(hào)本身
2.Calendar模塊
Calendar模塊是與日歷相關(guān)的模塊,但也有很廣泛的方法來處理年歷和月歷,例如打印某月的月歷:
使用claendar.month函數(shù)生成月份的日歷。
在claendar模塊中有12種函數(shù),是比較常用的:
2.1 calendar.calendar(year,w=2,I=1,c=6,m=3)
返回一個(gè)多行字符串格式的year年年歷,3個(gè)月為一行,間隔距離為c,每日寬度間隔為w字符,每行長(zhǎng)度為21w+18+2c,i是每星期行數(shù)
2.2calendar.firstweekday
2.3calendar.isleap(year)
2.4calendar.leapdays(y1,y2)
2.5calendar.month(year,month,w=2,i=1)
返回一個(gè)多行字符串格式的year年month月日歷,兩行標(biāo)題,一周一行。每日寬度間隔為w字符,每行的長(zhǎng)度為7*w+6,I是每星期的行數(shù)。
2.6calendar.monthcalendar(year,month)
返回一個(gè)整數(shù)的單層嵌套列表,每個(gè)子列表裝載代表一個(gè)星期的整數(shù),year年month月外的日期都設(shè)為0,范圍內(nèi)的日子都由該月第幾日表示,從1開始。
2.7 calendar.monthrange(year,month)
返回兩個(gè)整數(shù),第一個(gè)是該月第一天是星期幾的日期碼,第二個(gè)是該月天數(shù)的日期碼,天是從0(星期一)到6(星期日);月是從1-12。
2.8calendar.prcal(year,w=2,i=1,c=6)
相當(dāng)于是print(calendar.calendar(year,w,I,c))
2.9calendar.prmonth(year,month,w=2,i=1)
相當(dāng)于print(calendar.calendar(year,w,I,c))
2.10 calendar.setfirstweekday(weekday)
設(shè)置每周的起碼日期碼。0(星期一)到6(星期日)
2.11 calendar.timegm(tupletime)
和time.gmtime相反:接受一個(gè)時(shí)間元組形式,返回該時(shí)刻的時(shí)間戳(1970年后的浮點(diǎn)秒數(shù))
2.12 calendar.weekday(year,month,day)
返回給定日期的日期碼。0(周一)到6(周日),月份為1-12。
3.datetime模塊
Datetime模塊是Python處理日期和時(shí)間的標(biāo)準(zhǔn)庫
3.1獲取當(dāng)前的日期
Datetime.now函數(shù)的作用是返回當(dāng)前日期和時(shí)間,返回的類型是datetime
3.2獲取指定日期和時(shí)間
如果要指定某個(gè)日期和時(shí)間呢,我們直接用參數(shù)構(gòu)造一個(gè)datetime也是可的:
通過datetime函數(shù),直接輸入年月日時(shí)分的參數(shù),來構(gòu)造一個(gè)指定的日期和時(shí)間
3.3datetime轉(zhuǎn)換為timestamp
在計(jì)算機(jī)中,時(shí)間實(shí)際上是用數(shù)字表示的,我們把1970年1月1日,00:00:00 UTC+00;00時(shí)區(qū)的時(shí)刻成為epoch time,記為0(1970年之前的時(shí)間戳為負(fù)數(shù)),當(dāng)前時(shí)間就是相對(duì)于Epoch time的秒數(shù),可以成為timestamp。
可以理解為:
Timestamp = 0 = 1970-1-1 00:00:00 UTC+0:00
拓展知識(shí)UTC 和 Epoch time
UTC time,Coordinated Universal Time,世界標(biāo)準(zhǔn)時(shí)間又稱為格林尼治時(shí)間,與UTCTime對(duì)應(yīng)的是各個(gè)時(shí)區(qū)的localtime,東N區(qū)的時(shí)間比UTC時(shí)間早N個(gè)小時(shí)因此UTC+N小時(shí),即為東N區(qū)的本地時(shí)間;而西N區(qū)時(shí)間比UTC時(shí)間玩N個(gè)小時(shí),即UTC time – N小時(shí)即為西N區(qū)的本地時(shí)間;中國(guó)在東8區(qū),因此比UTC時(shí)間早了八個(gè)小時(shí),可以以UTC+8進(jìn)行表示。
Epoch time表示時(shí)間開始的七點(diǎn);是一個(gè)特定的時(shí)間,不同平臺(tái)上的時(shí)間點(diǎn)不同,對(duì)于Unix而言,epoch time 為1970-01-01 00:00:00 UTC
首先轉(zhuǎn)換為時(shí)間戳格式
將時(shí)間戳格式的時(shí)間轉(zhuǎn)換為字符串日期時(shí)間
設(shè)置時(shí)間的格式
3.4 datetime加減
對(duì)于日期和時(shí)間進(jìn)行加減實(shí)際上呢就是把日期時(shí)間datetime往后或者往前計(jì)算,得到新的日期時(shí)間datetime。加減可以直接運(yùn)用+和-預(yù)算符,不過需要呢導(dǎo)入timedelta這個(gè)datetime模塊下的類
在現(xiàn)在的時(shí)間加上10個(gè)小時(shí)的時(shí)間
在現(xiàn)在的時(shí)間上減去一天的時(shí)間
在現(xiàn)在的時(shí)間上加上2天12小時(shí)的時(shí)間
?
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/43609.html
摘要:格式化日期首先獲取時(shí)間輸出的結(jié)果是但是這樣是一連串的數(shù)字不是我們想要的結(jié)果,我們可以利用模塊的格式化時(shí)間的方法來處理用方法,作用是格式化時(shí)間戳為本地的時(shí)間。 格式化日期 首先獲取時(shí)間 import time print(time.time()) 輸出的結(jié)果是: 1511495129.260231 但是這樣是一連串的數(shù)字不是我們想要的結(jié)果,我們可以利用time模塊的格式化時(shí)間的方法來處理...
摘要:用了一段時(shí)間的開發(fā)項(xiàng)目,也是第一次用來開發(fā)項(xiàng)目,所有有許多相關(guān)的知識(shí)點(diǎn)需要總結(jié),本文所介紹的的日期時(shí)間處理就是最近用到的,希望對(duì)各位有所幫助,也同時(shí)作為自己的筆記儲(chǔ)存。提供了等模塊用于處理日期和時(shí)間,較為常用的還是模塊。 用了一段時(shí)間的django開發(fā)web項(xiàng)目,也是第一次用python來開發(fā)項(xiàng)目,所有有許多相關(guān)的知識(shí)點(diǎn)需要總結(jié),本文所介紹的python的日期時(shí)間處理就是最近用到的,希...
Python的作用還是比較的廣泛的,在日常生活中,應(yīng)用范圍也比較的廣泛,比如,我們可以去利用python,以此來獲取年月日等相關(guān)的一些信息,具體的內(nèi)容是什么呢?下面就給大家詳細(xì)的解答下。 這次介紹日期數(shù)據(jù)處理。 用python中的方法對(duì)日期數(shù)據(jù)進(jìn)行處理,我們可以獲取很多有用的信息,比如年月日,星期,周次,季度等,這里分享工作和數(shù)據(jù)競(jìng)賽30余種常用的轉(zhuǎn)換方法。 1計(jì)算日期的年月日時(shí)分秒,星...
摘要:項(xiàng)目地址時(shí)間和日期可能涉及到不同的時(shí)區(qū)格式,同時(shí)又經(jīng)常需要作為時(shí)間戳保存,有時(shí)候還需要進(jìn)行一些加減操作,因此處理起來通常會(huì)因?yàn)榉椒ㄌ喽鵁o從下手。中與時(shí)間和日期相關(guān)的標(biāo)準(zhǔn)庫有個(gè)和。 項(xiàng)目地址:https://git.io/pytips 時(shí)間和日期可能涉及到不同的時(shí)區(qū)、格式,同時(shí)又經(jīng)常需要作為時(shí)間戳保存,有時(shí)候還需要進(jìn)行一些加減操作,因此處理起來通常會(huì)因?yàn)榉椒ㄌ喽鵁o從下手。Python...
摘要:對(duì)于日期的操作可以說是比較常見的了日期與格式化字符串互轉(zhuǎn),日期與時(shí)間戳互轉(zhuǎn),日期的加減操作等,下面主要介紹下常見的需求場(chǎng)景如何實(shí)現(xiàn)基本包引入主要需要引入時(shí)間和日期的處理包,后面的基本操作都是基于此獲取當(dāng)前時(shí)間獲取當(dāng)前時(shí)間,有幾種方式 對(duì)于日期的操作可以說是比較常見的case了,日期與格式化字符串互轉(zhuǎn),日期與時(shí)間戳互轉(zhuǎn),日期的加減操作等,下面主要介紹下常見的需求場(chǎng)景如何實(shí)現(xiàn) 1. 基本...
閱讀 3000·2021-10-27 14:16
閱讀 709·2021-10-13 09:39
閱讀 3722·2021-09-29 09:46
閱讀 2106·2019-08-30 15:54
閱讀 2610·2019-08-30 15:52
閱讀 3006·2019-08-30 15:44
閱讀 1118·2019-08-30 15:44
閱讀 510·2019-08-30 10:51