pythondatetimetime
❶ python中處理時間的幾種方法小結
python中的時間模塊主要有time, datetime。
I, time模塊
time模塊中包含了四種時間格式:
float格式,即給定時間相對於epoch增加的秒數
tuple格式,一個九元組 (tm_year, tm_mon, tm_mday, tm_hour, tm_min, tm_sec, tm_wday, tm_yday, tm_isdst)
string格式,'Mon Feb 6 15:00:06 2012'
format格式,以指定的格式生成的時間
針對這幾種時間格式,time模塊提供了函數在格式之間相互轉換。
asctime(tuple) ->string
ctime(float) ->string
gmtime(float) ->tuple
localtime(float) ->tuple
mktime(tuple) ->float
strftime(format, tuple) ->format string
strptime(formatstring, format) ->tuple
time() -> float
上述函數中,除了time()函數直接返回當前時間相對於epoch的秒數外,其他函數都要求有時間的輸入,如果沒有輸入,則默認使用當前時間。
另外,strftime和strptime中的format使用下面的格式:
%a 英文星期簡寫
%A 英文星期的完全
%b 英文月份的簡寫
%B 英文月份的完全
%c 顯示本地日期時間
%d 日期,取1-31
%H 小時, 0-23
%I 小時, 0-12
%m 月, 01 -12
%M 分鍾,1-59
%j 年中當天的天數
%w 顯示今天是星期幾
%W 第幾周
%x 當天日期
%X 本地的當天時間
%y 年份 00-99間
%Y 年份的完整拼寫
%S 秒(00-59)
除了上述的時間轉換函數之外,模塊還提供了下面的函數:
clock() 返回進程的創建時間,以秒計數的float
sleep(float) sleep一段時間,以秒計數
tzset() 更改時區
II, datetime
datetime模塊定義了下面這幾個類:
datetime.date:表示日期的類。常用的屬性有year, month, day;datetime.time:表示時間的類。常用的屬性有hour, minute, second, microsecond;datetime.datetime:表示日期時間。datetime.timedelta:表示時間間隔,即兩個時間點之間的長度。datetime.tzinfo:與時區有關的相關信息。(這里不詳細充分討論該類,感興趣的童鞋可以參考python手冊)
注 :上面這些類型的對象都是不可變(immutable)的。
下面詳細介紹這些類的使用方式。
date類
date類表示一個日期。日期由年、月、日組成(地球人都知道~~)。date類的構造函數如下:
class datetime.date(year, month, day):參數的意義就不多作解釋了,只是有幾點要注意一下:
year的范圍是[MINYEAR, MAXYEAR],即[1, 9999];month的范圍是[1, 12]。(月份是從1開始的,不是從0開始的~_~);day的最大值根據給定的year, month參數來決定。例如閏年2月份有29天;
date類定義了一些常用的類方法與類屬性,方便我們操作:
date.max、date.min:date對象所能表示的最大、最小日期;date.resolution:date對象表示日期的最小單位。這里是天。date.today():返回一個表示當前本地日期的date對象;date.fromtimestamp(timestamp):根據給定的時間戮,返回一個date對象;datetime.fromordinal(ordinal):將Gregorian日歷時間轉換為date對象;(Gregorian Calendar :一種日歷表示方法,類似於我國的農歷,西方國家使用比較多,此處不詳細展開討論。)
❷ python date,datetime 和time的區別
1,date是日期,通常就是日歷上的年月日,比較大一點的時間單位。
2,time通常就是指秒鍾數,即從1970年1月1日至今進過的秒鍾數。或者指一天中的時分秒,比較小一點的時間單位。就像你問別人What's
the
time,別人會告訴你幾點幾分,而不會告訴你年月日。
3,datetime就是年月日和時分秒,包含以上兩者。
datetime
模塊是用來處理日期時間的,通常是用來進行計算日期,可以很方便的使用加減運算。而time模塊主要是用來處理秒鍾時間的,當然這個秒鍾數也可以轉化成日
期,獲取當前日期通常就是從這個模塊獲取的。不過說time時,有時候表示的也會很寬泛,因為它的詞義就是時間嘛,這個不用太計較的。不過date的意義
是確定無疑的。
❸ python怎麼調用時間
datetime在python中比較常用,主要用來處理時間日期,使用前先倒入datetime模塊。下面總結下本人想到的幾個常用功能。
1、當前時間:
>>> print datetime.datetime.now()2015-07-17 16:39:15.712000>>> print type(datetime.datetime.now())
<type 'datetime.datetime'>
返回的datetime時間格式。
2、當前日期
>>> print datetime.datetime.now().date()2015-07-17>>> print type(datetime.datetime.now().date())
<type 'datetime.date'>
3、當前時間tuple
>>> datetime.datetime.now().timetuple()time.struct_time(tm_year=2015, tm_mon=7, tm_mday=17, tm_hour=16, tm_min=51, tm_sec=26, tm_wday=4, tm_yday=198, tm_isdst=-1)
>>> datetime.datetime.now().timetuple().tm_mday17
4、時間移動(幾天、幾小時前後...)
使用datetime.timedelta這個方法來前後移動時間,可以用的參數有weeks,days,hours,minutes,seconds,microseconds。
>>> print datetime.datetime.now() + datetime.timedelta(days=1)2015-07-18 16:49:48.574000>>> print datetime.datetime.now() + datetime.timedelta(hours=1)2015-07-17 17:49:57.122000>>> print datetime.datetime.now() + datetime.timedelta(minutes=-30)2015-07-17 16:20:08.619000
上個月最後一天
>>> print datetime.date(day=1,month=datetime.date.today().month,year=datetime.date.today().year) - datetime.timedelta(days=1)2015-06-30
5、獲取兩個時間的時間差
>>> (datetime.datetime.now() - datetime.datetime.utcnow()).total_seconds()
28800.0
6、時間轉化
datetime轉str格式:
>>> datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")'2015-07-17 16:58:46'
str格式轉datetime格式:
>>> datetime.datetime.strptime("2015-07-17 16:58:46","%Y-%m-%d %H:%M:%S")
datetime.datetime(2015, 7, 17, 16, 58, 46)
>>> print datetime.datetime.strptime("2015-07-17 16:58:46","%Y-%m-%d %H:%M:%S")2015-07-17 16:58:46>>> print type(datetime.datetime.strptime("2015-07-17 16:58:46","%Y-%m-%d %H:%M:%S"))
<type 'datetime.datetime'>
datetime轉timestamp:
>>> import time>>> now=datetime.datetime.now()>>> time.mktime(now.timetuple())1437123812.0
timestamp轉datetime:
>>> datetime.datetime.fromtimestamp(1437123812.0)datetime.datetime(2015, 7, 17, 17, 3, 32)
>>> print datetime.datetime.fromtimestamp(1437123812.0)
2015-07-17 17:03:32
❹ python中import datetime是什麼意思
引用datetime模塊,使用其中的相關函數。
datetime模塊提供了可以通過多種方式操作日期和時間的類。在支持日期時間數學運算的同時,實現的關注點更著重於如何能夠更有效地解析其屬性用於格式化輸出和數據操作。相關功能可以參閱time和calendar模塊。
有兩種日期和時間的對象:「簡單型「和」感知型「。
感知型對象有著用足以支持一些應用層面演算法和國家層面時間調整的信息,例如時區和夏令時,來讓自己和其他的感知型對象區別開來。感知型對象是用來表達不對解釋器開放的特定時間信息1。
簡單型對象沒包含足夠多的信息來明確定位與之相關的 date/time 對象。 簡單型對象所代表的是世界標准時間(UTC)、當地時間或者是其它時區的時間完全取決於程序,就像一個數字是代表的是米、英里或者質量完全取決於程序一樣。 簡單型對象以忽略了一些現實情況的為代價使得它容易理解和使用。
對於需要感知型對象的應用,datetime對象和time對象有一個可選的時區信息屬性tzinfo,這個屬性可以設置給tzinfo類的子類實例。這些tzinfo對象捕獲關於相對於世界標准時間(UTC)偏移、時區名字和夏令時是否有效等信息。需要注意的是,只有一個具體的tzinfo類,即由datetime模塊提供的timezone類。timezone類可以代表相對於世界標准時間(UTC)固定偏移的簡單時區,比如世界標准時間(UTC)自己或者北美東部時間或者東部夏令時。支持時區的詳細程度取決於應用。世界各地的時間調整規則相比理性更加政治性,經常會變更。也沒有一個基於世界標准時間(UTC)的標准套件適合用於所有應用。
有效的類型
classdatetime.date
一個理想化的簡單型日期,它假設當今的公歷在過去和未來永遠有效。 屬性:year,month, andday。
classdatetime.time
一個理想化的時間,它獨立於任何特定的日期,假設每天一共有 24*60*60 秒(這里沒有"閏秒"的概念)。 屬性:hour,minute,second,microsecond, 和tzinfo。
classdatetime.datetime
日期和時間的結合。屬性:year,month,day,hour,minute,second,microsecond, andtzinfo.
classdatetime.timedelta
表示兩個date對象或者time對象,或者datetime對象之間的時間間隔,精確到微秒。
classdatetime.tzinfo
一個描述時區信息的抽象基類。用於給datetime類和time類提供自定義的時間調整概念(例如,負責時區或者夏令時)。
classdatetime.timezone
一個實現了tzinfo抽象基類的子類,用於表示相對於 世界標准時間(UTC)的偏移量。
❺ python中datetime怎麼設置時區
1、默認情況下,pandas中的時間序列是單純(naive)的時區,其索引的tz欄位為None。
❻ python date,datetime 和time的區別
datetime和time是Python中的兩個內置包,但是沒有date包。
time包提供的介面與C標准庫time.h基本一致。相比於time模塊,datetime模塊的介面則更直觀、更容易調用。
time包可以直接獲取Unix時間戳,
importtime
printtime.time()
#1437653274.549
而datetime可以直接獲取表示當前日期的對象,
fromdatetimeimportdatetime
printdatetime.now()
#2015-07-2320:10:14.087000
❼ python中如何把datetime.datetime轉換成datetime.time
用Python實現字元串和日期相互轉換的方法,具體如下:這里用的分別是time和datetime函數來處理 importtime,datetime //日期轉化為字元串 #datetostr //輸出時間 printtime.strftime("%Y-%m-%d%X",time.localtime()) #strtodate //字元串轉化為日期 t=time.strptime("2016-12-05","%Y-%m-%d") y,m,d=t[0:3] //輸出時間 printdatetime.datetime(y,m,d)
❽ python中怎麼把datetime類型轉換成timestamp
Python3.6.4(v3.6.4:d48ecebad5,Dec182017,21:07:28)
[GCC4.2.1(AppleInc.build5666)(dot3)]ondarwin
Type"help","right","credits"or"license"formoreinformation.
>>>importtime
>>>fromdatetimeimportdatetime
>>>now=datetime.now()
>>>timestamp=int(time.mktime(now.timetuple()))
>>>timestamp
1520493295
>>>timestamp_microsecond=float('{}{:06}'.format(timestamp,now.microsecond))/1000000
>>>timestamp_microsecond
1520493295.337066
❾ 幾種Python執行時間的計算方法
方法1:
import datetime
starttime = datetime.datetime.now()
#long running
#do something other
endtime = datetime.datetime.now()
print (endtime - starttime).seconds
datetime.datetime.now()獲取的是當前日期,在程序執行結束之後,這個方式獲得的時間值為程序執行的時間。
方法2:
start = time.time()
#long running
#do something other
end = time.time()
print end-start
time.time()獲取自紀元以來的當前時間(以秒為單位)。如果系統時鍾提供它們,則可能存在秒的分數。所以這個地方返回的是一個浮點型類型。這里獲取的也是程序的執行時間。
方法3:
start = time.clock()
#long running
#do something other
end = time.clock()
print end-start
time.clock()返回程序開始或第一次被調用clock()以來的CPU時間。 這具有與系統記錄一樣多的精度。返回的也是一個浮點類型。這里獲得的是CPU的執行時間。
註:程序執行時間=cpu時間 + io時間 + 休眠或者等待時間。
關於幾種Python執行時間的計算方法,環球青藤小編就和大家分享到這里了,學習是永無止境的,學習一項技能更是受益終身,所以,只要肯努力學,什麼時候開始都不晚。如果您還想繼續了解關於python編程的學習方法及素材等內容,可以點擊本站其他文章學習。
❿ python datetime處理時間
python時間處理方法datetime(),下面就舉幾個代碼案例進行說明,代碼如下:
#-*-coding:utf-8-*-
#運行環境:Python3.4
#datetime類
#datetime是date與time的結合體,包括date與time的所有信息。
#它的構造函數如下:
#datetime.datetime(year,month,day[,hour[,minute[,second[,microsecond[,tzinfo]]]]])
#各參數的含義與date、time的構造函數中的一樣,要注意參數值的范圍。
#1.datetime類定義的類屬性與方法:
#datetime.min、datetime.max:datetime所能表示的最小值與最大值;
#print:datetime.max:9999-12-3123:59:59.999999
#print:datetime.min:0001-01-0100:00:00
fromdatetimeimport*
importtime
print('datetime.max:'+str(datetime.max))
print('datetime.min:'+str(datetime.min))
#datetime.resolution:datetime最小單位;
#print:datetime.resolution:0:00:00.000001
print('datetime.resolution:'+str(datetime.resolution))
#datetime.today():返回一個表示當前本地時間的datetime對象;
#print:today():2012-09-1219:37:50.721000
print('today():'+str(datetime.today()))
#datetime.now([tz]):返回一個表示當前本地時間的datetime對象,如果提供了參數tz,則獲取tz參數所指時區的本地時間;
#print:now():2012-09-1219:37:50.738000
print('now():'+str(datetime.now()))
#datetime.utcnow():返回一個當前utc時間的datetime對象;
#print:2012-09-1211:37:50.739000
print('utcnow():'+str(datetime.utcnow()))
#datetime.fromtimestamp(timestamp[,tz]):根據時間戮創建一個datetime對象,參數tz指定時區信息;
#print:fromtimestamp(tmstmp):2012-09-1219:37:50.741000
print('fromtimestamp(tmstmp):'+str(datetime.fromtimestamp(time.time())))
#datetime.utcfromtimestamp(timestamp):根據時間戮創建一個datetime對象;
#print:utcfromtimestamp(tmstmp):2012-09-1211:37:50.742000
print('utcfromtimestamp(tmstmp):'+str(datetime.utcfromtimestamp(time.time())))
#datetime.combine(date,time):根據date和time,創建一個datetime對象;
#print:datetime.combine(date,time):2012-09-1219:46:05
d=date(2012,9,12)
fromdatetimeimport*
t=time(19,46,5)
print('datetime.combine(date,time):'+str(datetime.combine(d,t)))
#datetime.strptime(date_string,format):將格式字元串轉換為datetime對象;
#print:2007-03-0421:08:12
print(datetime.strptime("2007-03-0421:08:12","%Y-%m-%d%H:%M:%S"))
#2.datetime類提供的實例方法與屬性
dt=datetime.strptime("2012-09-1221:08:12","%Y-%m-%d%H:%M:%S")
#print:2012912218120None
print(dt.year)
print(dt.month)
print(dt.day)
print(dt.hour)
print(dt.minute)
print(dt.second)
print(dt.microsecond)
print(dt.tzinfo)
print(dt.date())
print(dt.time())
print(dt.replace(year=2013))
print(dt.timetuple())
print(dt.utctimetuple())
print(dt.toordinal())
print(dt.weekday())
print(dt.isocalendar())
#printdt.isoformat([sep])
#datetime.ctime():返回一個日期時間的C格式字元串,等效於time.ctime(time.mktime(dt.timetuple()));
#3.格式字元串
#datetime.strftime(format)
#%a星期的簡寫。如星期三為Web
#%A星期的全寫。如星期三為Wednesday
#%b月份的簡寫。如4月份為Apr
#%B月份的全寫。如4月份為April
#%c:日期時間的字元串表示。(如:04/07/1010: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],為什麼不是[00,59],參考python手冊~_~)
#%U:周在當年的周數當年的第幾周),星期天作為周的第一天
#%w:今天在這周的天數,范圍為[0,6],6表示星期天
#%W:周在當年的周數(是當年的第幾周),星期一作為周的第一天
#%x:日期字元串(如:04/07/10)
#%X:時間字元串(如:10:43:39)
#%y:2個數字表示的年份
#%Y:4個數字表示的年份
#%z:與utc時間的間隔(如果是本地時間,返回空字元串)
#%Z:時區名稱(如果是本地時間,返回空字元串)
#%%:%%=>%
dt=datetime.now()
#print:(%Y-%m-%d%H:%M:%S%f):2012-09-1223:04:27145000
print('(%Y-%m-%d%H:%M:%S%f):'+str(dt.strftime('%Y-%m-%d%H:%M:%S%f')))
#print:(%Y-%m-%d%H:%M:%S%p):12-09-1211:04:27PM
print('(%Y-%m-%d%H:%M:%S%p):'+str(dt.strftime('%y-%m-%d%I:%M:%S%p')))
#print:%a:Wed
print('%%a:%s'%dt.strftime('%a'))
#print:%A:Wednesday
print('%%A:%s'%dt.strftime('%A'))
#print:%b:Sep
print('%%b:%s'%dt.strftime('%b'))
#print:%B:September
print('%%B:%s'%dt.strftime('%B'))
#print:日期時間%c:09/12/1223:04:27
print('日期時間%%c:%s'%dt.strftime('%c'))
#print:日期%x:09/12/12
print('日期%%x:%s'%dt.strftime('%x'))
#print:時間%X:23:04:27
print('時間%%X:%s'%dt.strftime('%X'))
#print:今天是這周的第3天
print('今天是這周的第%s天'%dt.strftime('%w'))
#print:今天是今年的第256天
print('今天是今年的第%s天'%dt.strftime('%j'))
#print:今周是今年的第37周
print('今周是今年的第%s周'%dt.strftime('%U'))
上面代碼案例運行結果如下:
atetime.max:9999-12-3123:59:59.999999
datetime.min:0001-01-0100:00:00
datetime.resolution:0:00:00.000001
today():2014-05-0415:58:18.141186
now():2014-05-0415:58:18.193146
utcnow():2014-05-0407:58:18.243958
fromtimestamp(tmstmp):2014-05-0415:58:18.291558
utcfromtimestamp(tmstmp):2014-05-0407:58:18.342550
datetime.combine(date,time):2012-09-1219:46:05
2007-03-0421:08:12
2012
9
12
21
8
12
0
None
2012-09-12
21:08:12
2013-09-1221:08:12
time.struct_time(tm_year=2012,tm_mon=9,tm_mday=12,tm_hour=21,tm_min=8,tm_sec=12,tm_wday=2,tm_yday=256,tm_isdst=-1)
time.struct_time(tm_year=2012,tm_mon=9,tm_mday=12,tm_hour=21,tm_min=8,tm_sec=12,tm_wday=2,tm_yday=256,tm_isdst=0)
734758
2
(2012,37,3)
(%Y-%m-%d%H:%M:%S%f):2014-05-0415:58:19326295
(%Y-%m-%d%H:%M:%S%p):14-05-0403:58:19PM
%a:Sun
%A:Sunday
%b:May
%B:May
日期時間%c:SunMay415:58:192014
日期%x:05/04/14
時間%X:15:58:19
今天是這周的第0天
今天是今年的第124天
今周是今年的第18周