先簡(jiǎn)單的了解下日期和時(shí)間數(shù)據(jù)類型及工具
python標(biāo)準(zhǔn)庫包含于日期(date)和時(shí)間(time)數(shù)據(jù)的數(shù)據(jù)類型,datetime、time以及calendar模塊會(huì)被經(jīng)常用到。
datetime以毫秒形式存儲(chǔ)日期和時(shí)間,datetime.timedelta表示兩個(gè)datetime對(duì)象之間的時(shí)間差。
給datetime對(duì)象加上或減去一個(gè)或多個(gè)timedelta,會(huì)產(chǎn)生一個(gè)新的對(duì)象
from datetime import datetimefrom datetime import timedeltanow = datetime.now()nowdatetime.datetime(2017, 6, 27, 15, 56, 56, 167000)datetime參數(shù):datetime(year, month, day[, hour[, minute[, second[, microsecond[,tzinfo]]]]])delta = now - datetime(2017,6,27,10,10,10,10)deltadatetime.timedelta(0, 20806, 166990)delta.days 0delta.seconds 20806delta.microseconds 166990
只有這三個(gè)參數(shù)了!
datetime模塊中的數(shù)據(jù)類型
類型 | 說明 |
---|---|
date | 以公歷形式存儲(chǔ)日歷日期(年、月、日) |
time | 將時(shí)間存儲(chǔ)為時(shí)、分、秒、毫秒 |
datetime | 存儲(chǔ)日期和時(shí)間 |
timedelta | 表示兩個(gè)datetime值之間的差(日、秒、毫秒) |
字符串和datetime的相互轉(zhuǎn)換
1)python標(biāo)準(zhǔn)庫函數(shù)
日期轉(zhuǎn)換成字符串:利用str 或strftime
字符串轉(zhuǎn)換成日期:datetime.strptime
stamp = datetime(2017,6,27)str(stamp) '2017-06-27 00:00:00'stamp.strftime('%y-%m-%d')#%Y是4位年,%y是2位年 '17-06-27'#對(duì)多個(gè)時(shí)間進(jìn)行解析成字符串date = ['2017-6-26','2017-6-27']datetime2 = [datetime.strptime(x,'%Y-%m-%d') for x in date]datetime2[datetime.datetime(2017, 6, 26, 0, 0), datetime.datetime(2017, 6, 27, 0, 0)]
2)第三方庫dateutil.parser的時(shí)間解析函數(shù)
from dateutil.parser import parseparse('2017-6-27') datetime.datetime(2017, 6, 27, 0, 0)parse('27/6/2017',dayfirst =True) datetime.datetime(2017, 6, 27, 0, 0)
3)pandas處理成組日期
pandas通常用于處理成組日期,不管這些日期是DataFrame的軸索引還是列,to_datetime方法可以解析多種不同的日期表示形式。
date ['2017-6-26', '2017-6-27']import pandas as pdpd.to_datetime(date) DatetimeIndex(['2017-06-26', '2017-06-27'], dtype='datetime64[ns]', freq=None)
datetime 格式定義