Python3中datetime模塊常用功能總結

Python提供了多個內置模塊用于操作日期時間,像calendar,time,datetime。time模塊我在之前的文章已經有所介紹,它提供 的接口與C標準庫time.h基本一致。相比于time模塊,datetime模塊的接口則更直觀、更容易調用。

datetime模塊定義了下面這幾個類:

datetime.date:表示日期的類。常用的屬性有year, month, day;

datetime.time:表示時間的類。常用的屬性有hour, minute, second, microsecond;

datetime.datetime:表示日期時間。

datetime.timedelta:表示時間間隔,即兩個時間點之間的長度。

datetime.tzinfo:與時區有關的相關信息。(這里不詳細充分討論該類,感興趣的童鞋可以參考python手冊)

:上面這些類型的對象都是不可變(immutable)的。

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:一種日歷表示方法,類似于我國的農歷,西方國家使用比較多,此處不詳細展開討論。)

date提供的實例方法和屬性:

date.year、date.month、date.day:年、月、日;

date.replace(year, month, day):生成一個新的日期對象,用參數指定的年,月,日代替原有對象中的屬性。(原有對象仍保持不變

date.timetuple():返回日期對應的time.struct_time對象;

date.toordinal():返回日期對應的Gregorian Calendar日期;

date.weekday():返回weekday,如果是星期一,返回0;如果是星期2,返回1,以此類推;

date.isoweekday():返回weekday,如果是星期一,返回1;如果是星期2,返回2,以此類推;

date.isocalendar():返回格式如(year,month,day)的元組;

date.isoformat():返回格式如'YYYY-MM-DD’的字符串;

date.strftime(fmt):自定義格式化字符串。

Time類

time類表示時間,由時、分、秒以及微秒組成。(我不是從火星來的~~)time類的構造函數如下:

class datetime.time(hour[, minute[, second[, microsecond[, tzinfo]]]]) :各參數的意義不作解釋,這里留意一下參數tzinfo,它表示時區信息。注意一下各參數的取值范圍:hour的范圍為[0, 24),minute的范圍為[0, 60),second的范圍為[0, 60),microsecond的范圍為[0, 1000000)。

time類定義的類屬性:

time.min、time.max:time類所能表示的最小、最大時間。其中,time.min = time(0, 0, 0, 0), time.max = time(23, 59, 59, 999999);

time.resolution:時間的最小單位,這里是1微秒;

time類提供的實例方法和屬性:

time.hour、time.minute、time.second、time.microsecond:時、分、秒、微秒;

time.tzinfo:時區信息;

time.replace([hour[, minute[, second[, microsecond[, tzinfo]]]]]):創建一個新的時間對象,用參數指定的時、分、秒、微秒代替原有對象中的屬性(原有對象仍保持不變);

time.isoformat():返回型如"HH:MM:SS"格式的字符串表示;

time.strftime(fmt):返回自定義格式化字符串。在下面詳細介紹;

datetime類

datetime類是date與time的結合體,包括date與time的所有信息。

它的構造函數如下:

datetime.?datetime?(year,?month,?day[?,?hour[?,?minute[?,?second[?,?microsecond[?,?tzinfo]?]?]?]?]?)

各參數的含義與date、time的構造函數中的一樣,要注意參數值的范圍。

?datetime類定義的類屬性與方法:

datetime.min、datetime.max:datetime所能表示的最小值與最大值;

datetime類定義的類屬性與方法:

datetime.min、datetime.max:datetime所能表示的最小值與最大值;

datetime.resolution:datetime最小單位;

datetime.today():返回一個表示當前本地時間的datetime對象

datetime.now([tz]):返回一個表示當前本地時間的datetime對象,如果提供了參數tz,則獲取tz參數所指時區的本地時間;

datetime.utcnow():返回一個當前utc時間的datetime對象;

datetime.fromtimestamp(timestamp[, tz]):根據時間戮創建一個datetime對象,參數tz指定時區信息;

datetime.utcfromtimestamp(timestamp):根據時間戮創建一個datetime對象;

datetime.combine(date, time):根據date和time,創建一個datetime對象;

datetime.strptime(date_string, format):將格式字符串轉換為datetime對象;

datetime類提供的實例方法與屬性(很多屬性或方法在date和time中已經出現過,在此有類似的意義,這里只羅列這些方法名,具體含義不再逐個展開介紹,可以參考上文對date與time類的講解。):

datetime.year、month、day、hour、minute、second、microsecond、tzinfo:

datetime.date():獲取date對象;

datetime.time():獲取time對象;

datetime.replace([year[, month[, day[, hour[, minute[, second[, microsecond[, tzinfo]]]]]]]]):

datetime.timetuple()

datetime.utctimetuple()

datetime.toordinal()

datetime.weekday()

datetime.isocalendar()

datetime.isoformat([sep])

datetime.ctime():返回一個日期時間的C格式字符串,等效于time.ctime(time.mktime(dt.timetuple()));

datetime.strftime(format)

格式化字符串:

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容