摘要:模塊提供的接口與標準庫基本一致。相比于模塊,模塊的接口則更直觀更容易調用。模塊定義了兩個常量這兩個常量分別表示所能表示的最小最大年份。表示時間間隔,即兩個時間點之間的長度。如月份為日期時間的字符串表示。
Python提供了多個內置模塊用于操作日期時間,像 calendar,time,datetime。time模塊提供的接口與C標準庫 time.h 基本一致。相比于 time 模塊,datetime模塊的接口則更直觀、更容易調用。
模塊定義了兩個常量:
datetime.MINYEAR
datetime.MAXYEAR
這兩個常量分別表示 datetime 所能表示的最小、最大年份。其中,MINYEAR = 1,MAXYEAR = 9999。
datetime 模塊定義了下面這幾個類:
datetime.date:表示日期的類。常用的屬性有year, month, day;
datetime.time:表示時間的類。常用的屬性有hour, minute, second, microsecond;
datetime.datetime:表示日期時間。
datetime.timedelta:表示時間間隔,即兩個時間點之間的長度。
datetime.tzinfo:與時區有關的相關信息。
注:以上列舉的這些類型的對象都是不可變(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:一種日歷表示方法,類似于我國的農歷,西方國家使用比較多,此處不詳細展開討論。)
使用示例:
>>> datetime.date.max datetime.date(9999, 12, 31) >>> datetime.date.min datetime.date(1, 1, 1) >>> datetime.date.resolution datetime.timedelta(1) >>> datetime.date.today() datetime.date(2016, 5, 12) >>> datetime.date.fromtimestamp(time.time()) datetime.date(2016, 5, 12)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,以此類推;
data.isoweekday():返回weekday,如果是星期一,返回1;如果是星期2,返回2,以此類推;
date.isocalendar():返回格式如(year,month,day)的元組;
date.isoformat():返回格式如"YYYY-MM-DD’的字符串;
date.strftime(fmt):自定義格式化字符串。
使用示例:
>>> today = datetime.date.today() >>> today.year 2016 >>> today.month 5 >>> today.day 12 >>> tomorrow = today.replace(day=13) >>> tomorrow datetime.date(2016, 5, 13) >>> tomorrow.timetuple() time.struct_time(tm_year=2016, tm_mon=5, tm_mday=13, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=4, tm_yday=134, tm_isdst=-1) >>> tomorrow.toordinal() 736097 >>> tomorrow.weekday() 4 >>> tomorrow.isoweekday() 5 >>> tomorrow.isocalendar() (2016, 19, 5) >>> tomorrow.isoformat() "2016-05-13" >>> tomorrow.strftime("%y-%m-%d") "16-05-13"date 重載了簡單的運算符:
date 允許對日期進行加減和比較:
date2 = date1 + timedelta:
日期加上一個間隔,返回一個新的日期對象
date2 = date1 - timedelta:
日期隔去間隔,返回一個新的日期對象
timedelta = date1 - date2:
兩個日期相減,返回一個時間間隔對象
date1 < date2:
兩個日期進行比較。
使用示例:
>>> now = datetime.date.today() >>> now datetime.date(2016, 5, 12) >>> now += datetime.date.resolution >>> now datetime.date(2016, 5, 13) >>> now -= datetime.date.resolution >>> now datetime.date(2016, 5, 12) >>> now < datetime.date.max TrueTime類
time 類表示時間(由時、分、秒以及微秒組成),其原型如下:
class datetime.time(hour=0, minute=0, second=0, microsecond=0, tzinfo=None)
參數說明:
hour 的范圍為[0, 24),
minute 的范圍為[0, 60),
second 的范圍為[0, 60),
microsecond 的范圍為[0, 1000000),
tzinfo 表示時區信息。
time 類定義的類屬性:time.min、time.max:time類所能表示的最小、最大時間。其中,time.min = time(0, 0, 0, 0), time.max = time(23, 59, 59, 999999);
time.resolution:時間的最小單位,這里是1微秒;
使用示例:
>>> datetime.time.min datetime.time(0, 0) >>> datetime.time.max datetime.time(23, 59, 59, 999999) >>> datetime.time.resolution datetime.timedelta(0, 0, 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):返回自定義格式化字符串。
使用示例:
>>> tm = datetime.time(18, 18, 18) >>> tm.hour 18 >>> tm.minute 18 >>> tm.second 18 >>> tm.microsecond 0 >>> tm.tzinfo >>> tm.isoformat() "18:18:18" >>> tm.replace(hour=20) datetime.time(20, 18, 18) >>> tm.strftime("%I:%M:%S %p") "06:18:18 PM"
time 類的對象只能進行比較,無法進行加減操作。
datetime 類datetime 是 date 與 time 的結合體,包括 date 與 time 的所有信息。其原型如下:
class datetime.datetime(year, month, day, hour=0, minute=0, second=0, microsecond=0, tzinfo=None)
各參數的含義與date、time的構造函數中的一樣,要注意參數值的范圍。
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對象,data 與 time 類沒有提供該方法。
使用示例:
>>> datetime.datetime.min datetime.datetime(1, 1, 1, 0, 0) >>> datetime.datetime.max datetime.datetime(9999, 12, 31, 23, 59, 59, 999999) >>> datetime.datetime.resolution datetime.timedelta(0, 0, 1) >>> print datetime.datetime.resolution 0:00:00.000001 >>> today = datetime.datetime.today() >>> today datetime.datetime(2016, 5, 12, 12, 46, 47, 246240) >>> datetime.datetime.now() datetime.datetime(2016, 5, 12, 12, 47, 9, 850643) >>> datetime.datetime.utcnow() datetime.datetime(2016, 5, 12, 4, 47, 42, 188124) >>> datetime.datetime.fromtimestamp(time.time()) datetime.datetime(2016, 5, 12, 12, 48, 40, 459676) >>> datetime.datetime.combine(datetime.date(1990, 10, 05), datetime.time(18, 18, 18)) datetime.datetime(1990, 10, 5, 18, 18, 18) >>> datetime.datetime.strptime("2010-04-07 01:48:16.234000", "%Y-%m-%d %H:%M:%S .%f") datetime.datetime(2010, 4, 7, 1, 48, 16, 234000)datetime 的實例方法與屬性
datetime類提供的實例方法與屬性大部分功能與 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)
datetime 對象同樣可以進行比較,或者相減返回一個時間間隔對象,或者日期時間加上一個間隔返回一個新的日期時間對象。
timedelta 類datetime.timedelta 對象代表兩個時間之間的的時間差,兩個 date 或 datetime 對象相減時可以返回一個timedelta 對象。其原型如下:
class datetime.timedelta(days=0, seconds=0, microseconds=0, milliseconds=0, minutes=0, hours=0, weeks=0)
所有參數可選,且默認都是0,參數的值可以是整數,浮點數,正數或負數。
內部只存儲days,seconds,microseconds,其他參數的值會自動按如下規則抓轉換:
1 millisecond(毫秒) 轉換成 1000 microseconds(微秒)
1 minute 轉換成 60 seconds
1 hour 轉換成 3600 seconds
1 week轉換成 7 days
三個參數的取值范圍分別為:
0 <= microseconds < 1000000
0 <= seconds < 3600*24 (the number of seconds in one day)
-999999999 <= days <= 999999999
timedelta 類定義的類屬性:timedelta.min:時間間隔對象的最小值,即 timedelta(-999999999).
timedelta.max:時間間隔對象的最大值,即 timedelta(days=999999999, hours=23, minutes=59, seconds=59, microseconds=999999).
timedelta.resolution:時間間隔的最小單位,即 timedelta(microseconds=1).
使用示例:
>>> datetime.timedelta.min datetime.timedelta(-999999999) >>> datetime.timedelta.max datetime.timedelta(999999999, 86399, 999999) >>> datetime.timedelta.resolution datetime.timedelta(0, 0, 1) >>> print datetime.timedelta.resolution 0:00:00.000001timedelta 實例方法
timedelta.total_seconds():計算時間間隔的總秒數
使用示例:
>>> datetime.timedelta.resolution.total_seconds() 1e-06格式字符串
datetime、date、time 都提供了 strftime() 方法,該方法接收一個格式字符串,輸出日期時間的字符串表示。支持的轉換格式如下:
%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],為什么不是[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.datetime.now() >>> dt.strftime("%Y-%m-%d %H:%M:%S %f") "2016-05-12 14:19:22 333943" >>> dt.strftime("%y-%m-%d %I:%M:%S %p") "16-05-12 02:19:22 PM" >>> dt.strftime("%a") "Thu" >>> dt.strftime("%A") "Thursday" >>> dt.strftime("%b") "May" >>> dt.strftime("%B") "May" >>> dt.strftime("%c") "Thu May 12 14:19:22 2016" >>> dt.strftime("%x") "05/12/16" >>> dt.strftime("%X") "14:19:22" >>> dt.strftime("%w") "4" >>> dt.strftime("%j") "133" >>> dt.strftime("%u") "4" >>> dt.strftime("%U") "19"
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/43101.html
摘要:如星期三為月份的簡寫。如月份為月份的全寫。如月份為日期時間的字符串表示。 摘要 剛接觸scrapy時候,需要把item經過pipelines處理后插入到mysql,寫插入語句教程是將item數據一個個枚舉出來,在字段特別多的時候還是蠻麻煩的,而且可擴展性比較差,其實只要稍作封裝就能很好的解決這種尷尬 import pymysql from datetime import datetim...
摘要:同時無論在哪種平臺上,都可以用進行系統編程。這樣導入模塊并使用生成隨機數中的模塊提供了生成隨機數的函數。生成的隨機數介于和之間。可以從自己定義的范圍中生成一個隨機數,如下所示操作日期和時間你可以從日期中提取所需的值,如下所示。 翻譯:瘋狂的技術宅https://likegeeks.com/python-... 本文首發微信公眾號:前端先鋒歡迎關注,每天都給你推送新鮮的前端技術文章 ...
摘要:是否則檢驗指定的對象是否存在。由于的模塊實現主要調用庫,所以各個平臺可能有所不同。時間格式時間戳的方式通常來說,時間戳是指格林威治時間年月日時分秒北京時間年月日時分秒起至現在的總秒數。元組方式元組共有個元素,返回的函數主要有,,。 os模塊 os模塊提供了多數操作系統的功能接口函數。當os模塊被導入后,它會自適應于不同的操作系統平臺,根據不同的平臺進行相應的操作,在python編程時,...
摘要:命令行參數,第一個元素是程序本身路徑返回所有已經導入的模塊列表獲取當前正在處理的異常類當前處理的異常詳細信息退出程序,正常退出時獲取解釋程序的版本值,進制格式如獲取解釋程序的版本信息最大的值最大的值返回系統導入的模塊字段,是模塊名,是模塊返 sys.argv 命令行參數List,第一個元素是程序本身路徑 sys.modules.keys() 返回所有已經導入的模塊列表 sys.exc_...
摘要:操作系統接口模塊提供了一些與操作系統相關聯的函數。返回當前目錄下所有圖片的文件名命令行參數在命令行中運行命令時,這些參數會以列表形式保存在模塊的變量中。日期和時間模塊為日期和時間處理同時提供了簡單和復雜的方法。 1. 操作系統接口 os 模塊提供了一些與操作系統相關聯的函數。 >>> os.getcwd() # 獲取當前工作目錄 /home/senius >>>...
閱讀 2809·2021-10-26 09:48
閱讀 1671·2021-09-22 15:22
閱讀 4028·2021-09-22 15:05
閱讀 608·2021-09-06 15:02
閱讀 2607·2019-08-30 15:52
閱讀 2107·2019-08-29 18:38
閱讀 2755·2019-08-28 18:05
閱讀 2332·2019-08-26 13:55