1. 程式人生 > >python時間處理包:datetime,time

python時間處理包:datetime,time

time包

time包基於C語言的庫函式(library functions)。Python的直譯器通常是用C編寫的,Python的一些函式也會直接呼叫C語言的庫函式。

import time
print(time.time())   # wall clock time, unit: second
print(time.clock())  # processor clock time, unit: second

time.sleep()可以將程式置於休眠狀態,直到某時間間隔之後再喚醒程式,讓程式繼續執行。

import time
print('start')
time.sleep(10)     # sleep for 10 secondsprint('wake up')

當我們需要定時地檢視程式執行狀態時,就可以利用該方法。
time包還定義了struct_time物件。該物件實際上是將掛鐘時間轉換為年、月、日、時、分、秒……等日期資訊,儲存在該物件的各個屬性中(tm_year, tm_mon, tm_mday...)。下面方法可以將掛鐘時間轉換為struct_time物件:

st = time.gmtime()      # 返回struct_time格式的UTC時間
st = time.localtime()   # 返回struct_time格式的當地時間, 當地時區根據系統環境決定。
s  = time.mktime(st)    # 將struct_time格式轉換成wall clock time

datetime包

簡介

datetime包是基於time包的一個高階包, 為我們提供了多一層的便利。datetime可以理解為date和time兩個組成部分。date是指年月日構成的日期(相當於日曆),time是指時分秒微秒構成的一天24小時中的具體時間(相當於手錶)。你可以將這兩個分開管理(datetime.date類,datetime.time類),也可以將兩者合在一起(datetime.datetime類)。
datetime模組定義了下面這幾個類:

  • datetime.date:表示日期的類。常用的屬性有year, month, day;
  • datetime.time:表示時間的類。常用的屬性有hour, minute, second, microsecond;
  • datetime.datetime:表示日期時間。
  • datetime.timedelta:表示時間間隔,即兩個時間點之間的長度。
  • datetime.tzinfo:與時區有關的相關資訊。

比如2012年9月3日21時30分,可以用如下方式表達:

import datetime
t = datetime.datetime(2012,9,3,21,30)
print(t)

所返回的t有如下屬性:
hour, minute, second, microsecond
year, month, day, weekday # weekday表示周幾

運算

datetime包還定義了時間間隔物件(timedelta)。一個時間點(datetime)加上一個時間間隔(timedelta)可以得到一個新的時間點(datetime)。比如今天的上午3點加上5個小時得到今天的上午8點。同理,兩個時間點相減會得到一個時間間隔。

import datetime
t      = datetime.datetime(2012,9,3,21,30)
t_next = datetime.datetime(2012,9,5,23,30)
delta1 = datetime.timedelta(seconds = 600)
delta2 = datetime.timedelta(weeks = 3)print(t + delta1)print(t + delta2)
print(t_next - t)

在給datetime.timedelta傳遞引數(如上的seconds和weeks)的時候,還可以是days, hours, milliseconds, microseconds。兩個datetime物件還可以進行比較。比如使用上面的t和t_next:
print(t > t_next)

datetime物件與字串轉換

一個方法是用正則表示式來搜尋字串,用格式化讀取的方式讀取時間資訊。

from datetime import datetime
format = "output-%Y-%m-%d-%H%M%S.txt" 
str    = "output-1997-12-23-030000.txt" 
t      = datetime.strptime(str, format)
  • strptime VS strftime
    strptime, p = parsing 分[剖]析,分解; 重構,將輸入的日期時間字串轉換為指定的格式並讀取。
    strftime, f = formatting 將時間物件轉換為另外一種時間格式

具體的格式寫法可參閱官方文件。 如果是Linux系統,也可查閱date命令的手冊($man date),兩者相通。
字串日期時間格式:

格式字元 意義
%a 星期的簡寫。如 星期三為Web
%A 星期的全寫。如 星期三為Wednesday
%b 月份的簡寫。如4月份為Apr
%B 月份的全寫。如4月份為April
%c 日期時間的字串表示。(如: 04/07/10 10:43:39)
%d 日在這個月中的天數(是這個月的第幾天)
%f 微秒(範圍[0,999999])
%H 小時(24小時制,[0, 23])
%I 小時(12小時制,[0, 11])
%j 日在年中的天數 [001,366](是當年的第幾天)
%m 月份([01,12])
%M 分鐘([00,59])
%p AM或者PM
%S 秒(範圍為[00,61]?
%U 周在當年的週數當年的第幾周),星期天作為周的第一天
%w 今天在這周的天數,範圍為[0, 6],6表示星期天
%W 周在當年的週數(是當年的第幾周),星期一作為周的第一天
%x 日期字串(如:04/07/10)
%X 時間字串(如:10:43:39)
%y 2個數字表示的年份
%Y 4個數字表示的年份
%z 與utc時間的間隔 (如果是本地時間,返回空字串)
%Z 時區名稱(如果是本地時間,返回空字串)
%% %% => %

相關推薦

python時間處理datetimetime

time包 time包基於C語言的庫函式(library functions)。Python的直譯器通常是用C編寫的,Python的一些函式也會直接呼叫C語言的庫函式。 import time print(time.time()) # wall clock time, unit: s

python 時間處理timedatetime介紹)

python的有關時間的有哪幾種呢?今天我們介紹兩個:time和datetime  time模組提供各種操作時間的函式  datetime模組定義了下面這幾個類: datetime.date:表示日期的類。常用的屬性有year, month, day; datetime.ti

python---基礎知識回顧(四)(模塊sys,os,random,hashlib,re,jsonxmlshutilconfigparserloggingdatetimetime集合雙端隊列其他)

ID 正常 空值 字符 預測 platform OS normal 生成 前提:dir,__all__,help,__doc__,__file__ dir:可以用來查看模塊中的所有特性(函數,類,變量等) >>> import copy >>

sqlDateTimeTimestampTime和Date有什麼區別?

場景: 用Mysql出現時間問題Incorrect datetime value: '' for column 'createtime',查明原因資料庫中用的是TIMESTAMP格式,時間為1970-2038年範圍之外的日期無法入庫。 解決:使用datetime欄位型別 總結如下:

python時間處理(二)Datetime

上一篇內容瞭解了time模組,接下來看下Datetime模組,這裡主要想解決的問題是如何計算兩個時間的差,並且返回秒,分鐘,小時,所以內容主要更偏向於解決問題,如果大家沒有看到自己需要的,最後會放上官方文件供大家參考。 首先看一下它具有的類及描述:

python時間處理(一)Time

平常的工作與學習中,會遇到許許多多與時間相關的問題,例如時間戳,時間格式化等等。所以今天就帶大家瞭解一下python中處理時間的模組,time,更多的是希望大家不在坑裡反覆迴圈的進去出來,相信大家都比我聰明 -_ -... 首先,獲取當前時間(以下程式碼預設匯入time模組,不再重複

python常用模組(模組和的解釋time模組sys模組random模組os模組json和pickle序列化模組)

1.1模組 什麼是模組: 在計算機程式的開發過程中,隨著程式程式碼越寫越多,在一個檔案裡程式碼就會越來越長,越來越不容易維護。 為了編寫可維護的程式碼,我們把很多函式分組,分別放到不同的檔案裡,這樣,每個檔案包含的程式碼就相對較少,在python中。一個.py檔案就稱為一個模組(Module

python很好用的時間處理 Arrow

py標準包datetime 中的時間處理,方法較繁多,不是很好記憶,所以在使用的便利程度上難免會打個折,然後發現一款很好用的python的時間處理包Arrow git上的專案地址 簡單的

Python裡獲取當前時間的三個函式time()、ctime()、gmtime()有什麼區別?

Python裡有三個函式可以獲取當前系統的時間,分別是time()、ctime()、gmtime()。那三者之間有什麼區別呢?先來一張圖:time()函式,返回的是一個浮點數,表示從1970年1月1日0點0分開始,到當前時間,一共經歷了多少秒。這樣看時間,簡直太費勁啦。於是c

sandglass(沙漏)——一個讓人解脫的python時間處理

blank git over google nco trac 通過 對象 pytho 在遊戲開發的過程中頻繁的須要跟時間相關的做處理。而python內置了好多個時間處理庫,datetime/date/time/calendar/timedelta等,細節繁多略具迷惑

Python基礎模塊datetime模塊

center inf 創建 strftime 函數 timedelta next 自定義格式 single datetime介紹:datetime是Python處理日期和時間的標準庫。它包含了五個類:datetime,date,time,timedelta, tzinfod

python時間處理

相差 日期 clas 英文月份 字符 bsp 開始 post print 一:字符串和時間序列轉化 time.strptime():字符串=>時間排序 time.strftime():時間序列=>字符串 import time start="2017-01-01

Python常用模塊datetime

常見用法 方法 for 日期 ext 指定 now() %s normal 使用前提: >>> from datetime import datetime 常見用法: 1、獲取當前日期和時間 >>> now = datetime

【施工ing】【整理】python各種學習資源資源網站部落格等等

  正確的方法 1  先寫,然後看書,思考總結 2 放棄從0開始,邊幹邊學,而不是從最基礎開始 3 放棄海量資料,1個專案1個專案的幹   堅持正確的方法,做專案學 開始總結模組 自己寫的分享文章不行,原理沒寫清楚,都是堆砌,當然和現

Python基礎學習二列表字典深拷貝與淺拷貝

④使用pop()方法刪除元素:pop方法用於移出列表中的一個元素(預設是最後一個元素),可以指定元素索引,並且返回該元素的值。     使用del語句刪除元素:如果知道要刪除的元素在列表中的位置,可使用del語句刪除元素,元素一旦被刪除之後就再也無法訪問。  

吳裕雄 資料探勘與分析案例實戰(4)——python資料處理工具Pandas

# 匯入模組import pandas as pdimport numpy as np # 構造序列gdp1 = pd.Series([2.8,3.01,8.99,8.59,5.18])print(gdp1)# 取出gdp1中的第一、第四和第五個元素print('行號風格的序列:\n',gdp1[[0,3,

python時間處理(三)pandas.to_datetime

前兩篇內容講了兩個單獨的python庫函式,今天帶大家認識一個常用的工具,pandas.to_datetime(),它是pandas庫的一個方法,pandas庫想必大家非常熟悉了,這裡不再多說。這個方法的實用性在於,當需要批量處理時間資料時,無疑是最好用的。 首先看一下它的主要幾個引數,官方

Python的框架比較Django金字塔水瓶Sanic旋風BottlePy等等

Python框架可以分為幾個領域,因為Python是一種非常多樣化的語言,可以在各個領域中使用。每個領域都有自己的框架,其中一些比其他更受歡迎。Python應用於Web開發是最流行的領域之一,我們今天將重點討論這個領域。 提供的框架可以分為三類:完整的堆疊框架,它為伺服器和客戶端提供了很多現成的

解釋Java工程中幾種常見的POVODAOBIZ,DTO,Service,ServiceImpl

一、PO:persistant object 持久物件,是與資料庫中的表相對映的java物件。最簡單的PO就是對應資料庫中某個表中的一條記錄,多個記錄可以用PO的集合。PO中應該不包含任何對資料庫的操作。  二、VO:value object值物件。通常用於業務層之間的資料傳

python 容器特點總結list tupledictset

list:有序的,可重複的,可以儲存任何型別,可改變 tuple:有序的,不可變,可重複,可以儲存任何型別 set:無序的,可變,不可重複,(用於去重),可以儲存任何型別 dict:值鍵對, 無序的, 鍵不可重複,值可重複,鍵不可變,值可變,可以儲存任何型別