http://blog./2015/07/15/python-module-date-time-notes/ 2015
datetime 1 2 3 4 5 6 7 8 9 10 11 12 13 14 # -*- coding: UTF-8 -*- __author__ = 'mcxiaoke' from datetime import date, timedelta, datetime import time # 常量 datetime.MINYEAR=1, datetime.MAXYEAR=9999 ''' 幾個類方法 datetime.date(year,month,day) datetime.time(hour,minute,second) datetime.datetime(year,month,day,hour,minute,second) '''
date對象1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 # timedelta對象表示兩個時間或日期的差值 delta = timedelta(hours=-5) # out: datetime.timedelta(-1, 68400) print delta.total_seconds() # out: -18000.0 print date.today() # datetime.date(2015, 7, 4) print date.fromtimestamp(time.time()) # 2015-07-04 today = date.today() print today # 2015-07-04 today == date.fromtimestamp(time.time()) print today # 2015-07-04 birthday = date(today.year, 10, 01) print birthday # 2015-10-01 time_to_birthday = abs(birthday - today) print time_to_birthday # 89 days, 0:00:00
datetime對象,類方法1 2 3 4 5 6 7 8 9 10 11 12 13 # 構(gòu)造函數(shù) datetime(year, month, day[, hour[, minute[, second[, microsecond[, tzinfo]]]]]) # 返回當?shù)貢r間 datetime.today() # datetime.datetime(2015, 7, 4, 16, 32, 29, 748628) # 返回當?shù)貢r間 datetime.now() # datetime.datetime(2015, 7, 4, 16, 32, 53, 701843) # 返回UTC時間 datetime.utcnow() # datetime.datetime(2015, 7, 4, 8, 34, 14, 433219) # 根據(jù)時間戳構(gòu)建當?shù)貢r間 datetime.fromtimestamp(time.time()) # datetime.datetime(2015, 7, 4, 16, 34, 53, 402597) # 根據(jù)時間戳構(gòu)建UTC時間 datetime.utcfromtimestamp(time.time()) # datetime.datetime(2015, 7, 4, 8, 35, 36, 268517) # 根據(jù)格式和日期字符串構(gòu)造對象,用法同time模塊的strptime() # datetime.strptime(date_string, format)
datetime對象,實例方法1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 now = datetime.now() print now.date() # 2015-07-04 print now.time() # 16:45:29.077727 print now.utcoffset() # None print now.timetuple() # out: time.struct_time(tm_year=2015, tm_mon=7, tm_mday=4, # tm_hour=16, tm_min=46, tm_sec=29, tm_wday=5, tm_yday=185, tm_isdst=-1) # 類似的還有 now.utctimetuple() print now.__str__() # 2015-07-04 16:48:02.930730 print now.ctime() # 'Sat Jul 4 16:44:03 2015' print now.strftime('%Y-%m-%d %H:%M:%S') # 2015-07-04 16:49:25 # time對象 t = now.time() print t.isoformat() # 返回ISO8601格式 16:52:19.700394 print t.utcoffset() # 返回時區(qū)偏移 None
time1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 # -*- coding: UTF-8 -*- __author__ = 'mcxiaoke' import time # 相關(guān)模塊 datetime,calendar, locale ## 時區(qū)縮寫表示 ''' GMT 格林威治標準時間 Greenwich Mean Time UTC 協(xié)調(diào)世界時 Coordinated Universal Time CST 可同時代表以下四個: Central Standard Time (USA) UT-6:00 Central Standard Time (Australia) UT+9:30 China Standard Time UT+8:00 Cuba Standard Time UT-4:00 ''' # Unix時間起點是1970年1月1號0點,終點是2038年 time.gmtime(0) # out: time.struct_time(tm_year=1970, tm_mon=1, tm_mday=1, tm_hour=0, # tm_min=0, tm_sec=0, tm_wday=3, tm_yday=1, tm_isdst=0) # UTC=GMT 兩種叫法而已 # 返回當前的時間戳 time.time() # out: 1435994390.769246 # 返回當前UTC/GMT時間,結(jié)果為 struct_time time.gmtime() # out: time.struct_time(tm_year=2015, tm_mon=7, tm_mday=4, tm_hour=7, # tm_min=20, tm_sec=35, tm_wday=5, tm_yday=185, tm_isdst=0) # 返回當前時區(qū)的時間,結(jié)果為 struct_time time.localtime() # out: time.struct_time(tm_year=2015, tm_mon=7, tm_mday=4, tm_hour=15, # tm_min=21, tm_sec=30, tm_wday=5, tm_yday=185, tm_isdst=0) time.mktime(time.localtime()) # 轉(zhuǎn)換成時間戳 time.asctime(time.localtime()) # 轉(zhuǎn)換成字符串 # out: 'Sat Jul 4 15:24:18 2015' time.asctime() # 默認使用 localtime() time.ctime() # 字符串表示的當?shù)貢r間 # ctime(secs) = asctime(localtime(secs)) # ctime.sleep(seconds) # 掛起當前線程一段時間,單位為秒
時間字符串格式化1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 # time.strftime(format[,t]) 格式化struct_time,默認是當前時間 # 轉(zhuǎn)換成unicode編碼 strftime(<myformat>).decode(locale.getlocale() print "當前時間戳", time.time() time_text = time.strftime( '%%A (%A) #當?shù)匦瞧趲卓s寫\n ' '%%a (%a) #當?shù)匦瞧趲兹Q\n ' '%%B (%B) #當?shù)卦路萑Q\n ' '%%b (%b) #當?shù)卦路菘s寫\n ' '%%c (%c) #當?shù)厝掌诤蜁r間表示\n ' '%%d (%d) #代表日期天數(shù)的數(shù)字[01,31]\n ' '%%H (%H) #24小時制的小時數(shù)[00,23]\n ' '%%I (%I) #12小時制的小時數(shù)[01,12]\n ' '%%j (%j) #一年中的第幾天[001,366]\n ' '%%m (%m) #代表日期月份的數(shù)字[01,12]\n ' '%%M (%M) #代表時間分鐘的數(shù)字[00,59]\n ' '%%p (%p) #當?shù)乇硎旧衔?下午的縮寫,如AM/PM\n ' '%%S (%S) #代表時間秒數(shù)的數(shù)字[00,61]\n ' '%%U (%U) #一年中的第幾周[00,53](星期日作為一周的開始)\n ' '%%w (%w) #代表日期星期幾的數(shù)字[0(星期一),6]\n ' '%%W (%W) #一年中的第幾周[00,53](星期一作為一周的開始)\n ' '%%x (%x) #當?shù)氐娜掌诒硎綷n ' '%%X (%X) #當?shù)氐臅r間表示\n ' '%%y (%y) #二位數(shù)的年份表示\n ' '%%Y (%Y) #四位數(shù)的年份表示\n ' '%%Z (%Z) #當前時區(qū)表示\n ') print "當前時間結(jié)構(gòu)", time.localtime() print "時間格式舉例", time.strftime("%Y-%m-%d %H:%M:%S") print time_text
輸出的表示1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 ''' 當前時間戳 1435997058.36 當前時間結(jié)構(gòu) time.struct_time(tm_year=2015, tm_mon=7, tm_mday=4, tm_hour=16, tm_min=4, tm_sec=18, tm_wday=5, tm_yday=185, tm_isdst=0) 時間格式舉例 2015-07-04 16:04:18 %A (Saturday) #當?shù)匦瞧趲卓s寫 %a (Sat) #當?shù)匦瞧趲兹Q %B (July) #當?shù)卦路萑Q %b (Jul) #當?shù)卦路菘s寫 %c (Sat Jul 4 16:04:18 2015) #當?shù)厝掌诤蜁r間表示 %d (04) #代表日期天數(shù)的數(shù)字[01,31] %H (16) #24小時制的小時數(shù)[00,23] %I (04) #12小時制的小時數(shù)[01,12] %j (185) #一年中的第幾天[001,366] %m (07) #代表日期月份的數(shù)字[01,12] %M (04) #代表時間分鐘的數(shù)字[00,59] %p (PM) #當?shù)乇硎旧衔?下午的縮寫,如AM/PM %S (18) #代表時間秒數(shù)的數(shù)字[00,61] %U (26) #一年中的第幾周[00,53](星期日作為一周的開始) %w (6) #代表日期星期幾的數(shù)字[0(星期一),6] %W (26) #一年中的第幾周[00,53](星期一作為一周的開始) %x (07/04/15) #當?shù)氐娜掌诒硎?br> %X (16:04:18) #當?shù)氐臅r間表示 %y (15) #二位數(shù)的年份表示 %Y (2015) #四位數(shù)的年份表示 %Z (CST) #當前時區(qū)表示 ''' # 按格式解析時間,返回值為 struct_time time.strptime('2005-09-01 9:45:20', '%Y-%m-%d %H:%M:%S') # out: time.struct_time(tm_year=2005, tm_mon=9, tm_mday=1, # tm_hour=9, tm_min=45, tm_sec=20, tm_wday=3, tm_yday=244, tm_isdst=-1)
struct_time1 2 3 4 5 6 7 8 9 10 11 ''' 0 tm_year (for example, 1993) 1 tm_mon 取值范圍 [1, 12] 2 tm_mday 取值范圍 [1, 31] 3 tm_hour 取值范圍 [0, 23] 4 tm_min 取值范圍 [0, 59] 5 tm_sec 取值范圍 [0, 61] 6 tm_wday 取值范圍 [0, 6] # 星期一=0 7 tm_yday 取值范圍 [1, 366] 8 tm_isdst 取值范圍 0, 1 or -1 '''