參考:html
01 | datetime.datetime | 包含 date 對象和 time 對象的全部信息。 | |
02 | datetime.date | 包含年月日。 | |
03 | datetime.time | 包含一天的時分秒信息。 | |
04 | datetime.timedelta |
用來指定一個時間間隔,表示兩個日期或者時間的不一樣。 | |
05 | time 模塊 |
序號 | 類名稱 | 功能說明python |
語法 & 舉例 | ||
01 | datetime.datetime 對象 | ====<<<< Description>>>>====app datetime 模塊下 的 datetime 對象,包含 date 對象和 time 對象的全部信息。 ====<<<< Syntax >>>>====.net datetime.datetime (year, month, day, hour=0, minute=0, second=0, microsecond=0, tzinfo=None, *, fold=0) ====<<<< Parameters >>>>====orm ◈ year:必須。MINYEAR <= year <= MAXYEAR ====<<<< Methods >>>>====對象 ◈ datetime.today ():返回如今的當地時間。 ====<<<< Attributes >>>>==== ◈ datetime.min:返回值爲 datetime,最小的。 |
>>> import datetime # 調用日期信息 >>> d1 = datetime.datetime.today() >>> print(d1) 2018-04-14 22:34:59.486000 >>> d1.year 2018 >>> d1.month 4 >>> d1.day 14 >>> d1.date() datetime.date(2018, 4, 14) >>> d1.time() datetime.time(22, 34, 59, 486000) # 日期計算 >>> d2 = d1.replace(year=2019, month=2, day=3) >>> d2 datetime.datetime(2019, 2, 3, 22, 34, 59, 486000) >>> dd = d2 - d1 >>> dd.days 295 # 構建日期 >>> d3 = datetime.datetime(2007, 9, 1) >>> d3 datetime.datetime(2007, 9, 1, 0, 0) # 一年中的第幾天 >>> today = datetime.datetime.today() >>> today.timetuple() time.struct_time(tm_year=2018, tm_mon=6, tm_mday=1, tm_hour=10, tm_min=34, tm_sec=37, tm_wday=4, tm_yday=152, tm_isdst=-1) >>> today.timetuple().tm_yday 152 根據 string 來建立 datetime,經過 datetime.strptime() 實現 下面代碼讀取格式以下的文本 「2019-11-10 09:08:07」 # "%Y-%m-%d %H:%M:%S" # 以上爲文本格式 ws = [] fn = r"D:\OneDrive - UNSW\tweets_flu.csv" df = pd.read_csv(fn) for i in range(len(df)): t = df.iloc[i]['created_at'] w = datetime.strptime(t, "%Y-%m-%d %H:%M:%S").strftime("%W") ws.append(w)
|
||
02 | datetime.date 對象 | datetime 模塊下 的 date 對象,包含年月日。 ====<<<< Syntax >>>>==== datetime.date (year, month, day) ====<<<< Parameters >>>>==== ◈ year:必須。MINYEAR <= year <= MAXYEAR ====<<<< Methods >>>>==== ◈ date.today ():返回如今的當地時間。 ====<<<< Attributes >>>>==== ◈ date.min:返回值爲 date,最小的。 |
>>> d1 = datetime.date.today() >>> d1.year 2018 >>> d2 = d1.replace(month=4, day=20) >>> d2 datetime.date(2018, 4, 20) >>> d1 datetime.date(2018, 4, 14) >>> (d2-d1).days 6 >>> d3 = datetime.date(2018,5,3) >>> d3 datetime.date(2018, 5, 3)
|
||
03 | datetime.time 對象 | datetime 模塊下 的 time 對象,包含一天的時分秒信息。 ====<<<< Syntax >>>>==== datetime.time (hour=0, minute=0, second=0, microsecond=0, tzinfo=None, *, fold=0) ====<<<< Parameters >>>>==== ◈ hour:默認 0。0 <= hour < 24 ====<<<< Methods >>>>==== ◈ datetime.replace (hour=self.hour, minute=self.minute, second=self.second, microsecond=self.microsecond, tzinfo=self.tzinfo, * fold=0):返回一個除了發生變化的屬性外其餘同樣的 time 。 ====<<<< Attributes >>>>==== ◈ time.min:返回值爲 time,最小的。 |
|||
04 | datetime.timedelta 對象 | datetime 模塊下 的 datedelta 對象,用來指定一個時間間隔,表示兩個日期或者時間的不一樣。 ====<<<< Syntax >>>>==== datetime.timedelta (days=0, seconds=0, microseconds=0, milliseconds=0, minutes=0, hours=0, weeks=0) ====<<<< Parameters >>>>==== ◈ hour:默認 0。0 <= hour < 24 ====<<<< Attributes >>>>==== ◈ timedelta.days:天數 |
>>> d1 = datetime.date(1987,8,31) >>> d2 = datetime.date.today() >>> dd = d2 - d1 >>> dd.days 11184 >>> d1 = datetime.datetime(1987,8,31) >>> d2 = datetime.datetime.today() >>> dd = d2 - d1 >>> dd.days 11184 |
||
05 | time 模塊 | 參考:Python 日期和時間 time 模塊 能夠用於格式化日期和時間。 ====<<<< Methods >>>>==== |
# 自動識別是本世紀仍是上個世紀 >>> time.strptime("12,11,15", "%y,%m,%d") time.struct_time(tm_year=2012, tm_mon=11, tm_mday=15, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=3, tm_yday=320, tm_isdst=-1) >>> time.strptime("97 Jun 8", "%y %b %d") time.struct_time(tm_year=1997, tm_mon=6, tm_mday=8, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=6, tm_yday=159, tm_isdst=-1) >>> time.strptime("30 Nov 00", "%d %b %y") time.struct_time(tm_year=2000, tm_mon=11, tm_mday=30, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=3, tm_yday=335, tm_isdst=-1) >>> time.localtime() time.struct_time(tm_year=2018, tm_mon=6, tm_mday=8, tm_hour=13, tm_min=42, tm_sec=58, tm_wday=4, tm_yday=159, tm_isdst=0) >>> time.gmtime() time.struct_time(tm_year=2018, tm_mon=6, tm_mday=8, tm_hour=5, tm_min=43, tm_sec=19, tm_wday=4, tm_yday=159, tm_isdst=0) >>> time.localtime().tm_yday 159 >>> time.asctime() 'Fri Jun 08 16:55:40 2018' >>> time.strftime("%a, %d %b %Y %H:%M:%S +0000", time.localtime()) 'Fri, 08 Jun 2018 17:02:18 +0000'
|
||
將字符串轉換爲 datetime
參考:Converting string into datetime
參考:strftime() and strptime() Behavior
代碼:(strptime 就是 string parse time)
from datetime import datetime a = "Wed Oct 10 20:19:24 +0000 2018" b = datetime.strptime(a, "%a %b %d %H:%M:%S %z %Y") print(b.year, b.month, b.day, b.hour, b.minute, b.tzinfo) # output # 2018 10 10 20 19 UTC