Python中的對日期時間的處理

咱們能夠經過學習在Python中對日期時間的處理,能夠在快速的完成工做,好比:函數

  • 將日期時間做爲日誌信息的內容輸入
  • 計算某一個功能的執行時間
  • 用日期命名一個文件的名稱
  • 記錄或者展現文件的發佈或修改時間
  • 其餘工做

在Python的程序可使用不少的方式處理日期和時間,轉換日期格式是一個常見的功能。Python中提供了一個time和calender的模塊能夠用來作格式化日期和時間的。時間間隔都是以秒爲單位的浮點小數。學習

在電腦中的時間都是由CPU儲存,因此通常呢也叫作CPU時間, cpu時間是計算從1970年1月1日0點0分到目前這個時間點所經歷的的秒數來表示,同時又能夠稱爲時間戳。spa

1.time模塊線程

1.1導入time模塊3d

首先使用import導入time模塊日誌

1.2查看時間戳orm

使用time.time函數查看當前的時間戳爲多少,time.time的做用是返回當前時間的時間戳進程

1.3返回當地時間rem

使用time.localtime函數,將當前時間戳返回爲本地的時間,返回的參數有9個:字符串

序號屬性字段值0Tm_year4位數年20081tm_mon月1-122tm_mday日1-313tm_hour小時0-234tm_min分鐘0-595tm_sec秒0-61(60或61 是閏秒)6tm_wday一週的第幾日0-6(0爲週一)7tm_yday一年的第幾日1-365(儒略曆)8tm_isdst夏令時-1,0,1 -1是決定是否爲夏令時的旗幟

能夠經過這9個返回的參數判斷當前的時間

1.4暫停代碼運行時間

time.sleep暫停代碼的運行時間,time.sleep函數的做用是推遲調用線程的運行,能夠經過參數Secs指秒數,表示進程掛起的時間。

1.5計算時間點

函數time.clock是以浮點數計算的秒數返回當前的CPU時間。這個函數在不一樣的系統上的含義也是不一樣的, 在UNIX系統上,它返回的是"進程時間",它是用秒錶示的浮點數(時間戳)。而在WINDOWS中,第一次調用,返回的是進程運行的實際時間。而第二次以後的調用是自第一次調用之後到如今的運行時間。(其實是以WIN32上QueryPerformanceCounter爲基礎,它比毫秒錶示更爲精確)

1.6獲取格式化的時間

咱們能夠根據需求選取各類格式,可是最簡單的獲取可讀的時間模式的函數是asctime:

Time.asctime函數接受時間元組並返回一個可讀的形式」5月7日,周天,13點20分26秒,2017年」的24個字符的字符串。參數是9個元素的元組或者經過函數Gmtime或localtime函數返回的時間值。

1.7格式化日期

經過time模塊中strftime方法來格式化日期:

image

Time.strftime函數接收時間元組,並返回以可讀字符串表示薪資的時間,格式的話由參數format決定。

1.8解析時間

Time.strptime(str,fmt=’%a %b %d %H:%M:%S %Y’)根據fromt的格式把一個時間字符串解析爲時間元組。

image

在Python中有22個時間日期的格式化符號,經過這些符號就能夠設置參數format了:

  • %y 兩位數的年份表示(00-99)
  • %Y 四位數的年份表示(000-9999)
  • %m 月份(01-12)
  • %d 月內中的一天(0-31)
  • %H 24小時制小時數(0-23)
  • %I 12小時制小時數(01-12)
  • %M 分鐘數(00=59)
  • %S 秒(00-59)
  • %a 本地簡化星期名稱
  • %A 本地完整星期名稱
  • %b 本地簡化的月份名稱
  • %B 本地完整的月份名稱
  • %c 本地相應的日期表示和時間表示
  • %j 年內的一天(001-366)
  • %p 本地A.M.或P.M.的等價符
  • %U 一年中的星期數(00-53)星期天爲星期的開始
  • %w 星期(0-6),星期天爲星期的開始
  • %W 一年中的星期數(00-53)星期一爲星期的開始
  • %x 本地相應的日期表示
  • %X 本地相應的時間表示
  • %Z 當前時區的名稱
  • %% %號自己

2.Calendar模塊

Calendar模塊是與日曆相關的模塊,但也有很普遍的方法來處理年曆和月曆,例如打印某月的月曆:

image

使用claendar.month函數生成月份的日曆。

在claendar模塊中有12種函數,是比較經常使用的:

2.1 calendar.calendar(year,w=2,I=1,c=6,m=3)

返回一個多行字符串格式的year年年曆,3個月爲一行,間隔距離爲c,每日寬度間隔爲w字符,每行長度爲21w+18+2c,i是每星期行數

image

2.2calendar.firstweekday

2.3calendar.isleap(year)

2.4calendar.leapdays(y1,y2)

2.5calendar.month(year,month,w=2,i=1)

返回一個多行字符串格式的year年month月日曆,兩行標題,一週一行。每日寬度間隔爲w字符,每行的長度爲7*w+6,I是每星期的行數。

image

2.6calendar.monthcalendar(year,month)

返回一個整數的單層嵌套列表,每一個子列表裝載表明一個星期的整數,year年month月外的日期都設爲0,範圍內的日子都由該月第幾日表示,從1開始。

2.7 calendar.monthrange(year,month)

返回兩個整數,第一個是該月第一天是星期幾的日期碼,第二個是該月天數的日期碼,天是從0(星期一)到6(星期日);月是從1-12。

2.8calendar.prcal(year,w=2,i=1,c=6)

至關因而print(calendar.calendar(year,w,I,c))

image

2.9calendar.prmonth(year,month,w=2,i=1)

至關於print(calendar.calendar(year,w,I,c))

image

2.10 calendar.setfirstweekday(weekday)

設置每週的起碼日期碼。0(星期一)到6(星期日)

2.11 calendar.timegm(tupletime)

和time.gmtime相反:接受一個時間元組形式,返回該時刻的時間戳(1970年後的浮點秒數)

2.12 calendar.weekday(year,month,day)

返回給定日期的日期碼。0(週一)到6(週日),月份爲1-12。

3.datetime模塊

Datetime模塊是Python處理日期和時間的標準庫

3.1獲取當前的日期

image

Datetime.now函數的做用是返回當前日期和時間,返回的類型是datetime

3.2獲取指定日期和時間

若是要指定某個日期和時間呢,咱們直接用參數構造一個datetime也是可的:

經過datetime函數,直接輸入年月日時分的參數,來構造一個指定的日期和時間

3.3datetime轉換爲timestamp

在計算機中,時間其實是用數字表示的,咱們把1970年1月1日,00:00:00 UTC+00;00時區的時刻成爲epoch time,記爲0(1970年以前的時間戳爲負數),當前時間就是相對於Epoch time的秒數,能夠成爲timestamp。

能夠理解爲:

Timestamp = 0 = 1970-1-1 00:00:00 UTC+0:00

拓展知識UTC 和 Epoch time

UTC time,Coordinated Universal Time,世界標準時間又稱爲格林尼治時間,與UTCTime對應的是各個時區的localtime,東N區的時間比UTC時間早N個小時所以UTC+N小時,即爲東N區的本地時間;而西N區時間比UTC時間玩N個小時,即UTC time – N小時即爲西N區的本地時間;中國在東8區,所以比UTC時間早了八個小時,能夠以UTC+8進行表示。

Epoch time表示時間開始的七點;是一個特定的時間,不一樣平臺上的時間點不一樣,對於Unix而言,epoch time 爲1970-01-01 00:00:00 UTC

首先轉換爲時間戳格式

將時間戳格式的時間轉換爲字符串日期時間

設置時間的格式

3.4 datetime加減

對於日期和時間進行加減實際上呢就是把日期時間datetime日後或者往前計算,獲得新的日期時間datetime。加減能夠直接運用+和-預算符,不過須要呢導入timedelta這個datetime模塊下的類

在如今的時間加上10個小時的時間

在如今的時間上減去一天的時間

在如今的時間上加上2天12小時的時間

相關文章
相關標籤/搜索