作者:Syn良子 出處:http://www.cnblogs.com/cssdongl 轉載請注明出處
需要用python的腳本來快速檢測一個文件內的二個時間日期字符串的大小,其實實現很簡單,首先一些基礎的日期格式化知識如下
''' %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: 時區名稱(如果是本地時間,返回空字符串) %%: %% => % '''
然后需要了解python中time,datetime,字符串時間之間的轉換關系,如下代碼是三者之間的轉換關系
jsontime = '2017-04-03' #string->time time.strptime(jsontime,"%Y-%m-%d") #string->datetime datetime.datetime.strptime(jsontime,"%Y-%m-%d") #time->string time.strftime("%y-%m-%d",time.localtime())
那么有了轉換關系以后,比較大小就很容易了,比如我可以把日期字符串轉換成time的時間戳來比較大小,如下
import time def compare_time(time1,time2): s_time = time.mktime(time.strptime(time1,'%Y-%m-%d')) e_time = time.mktime(time.strptime(time2,'%Y-%m-%d')) print 's_time is:',s_time print 'e_time is:',e_time return int(s_time) - int(e_time) result = compare_time('2017-04-17','2017-04-19') print 'the compare result is:',result
當然也可以利用datetime來比較字符串的大小
import datetime d1 = datetime.datetime.strptime('2015-03-05 17:41:20', '%Y-%m-%d %H:%M:%S') d2 = datetime.datetime.strptime('2015-03-02 17:41:20', '%Y-%m-%d %H:%M:%S') delta = d1 - d2 print delta.days