python datetime庫使用代碼詳解
python中對日期的操作主要是依靠datetime模塊完成,datetime模塊功能相當強大,幾乎可以對與日前時間相關的所有操作,下面的隔斷代碼分別展示了datetime的強大能量。 datetime模塊的date類常用的日期信息輸入
from datetime import *
import timeprint 'date.max:', date.max #date.max表示可以輸出的最大日期,這里為9999年12月31日 print 'date.min:', date.min #date.min 表示可以輸出的最小日期,這里為0001年1月1日
datetime提供了這么寬廣范圍的日期,我們這代人肯定是夠用了
print 'date.today():', date.today() #返回今天的日期 print 'date.fromtimestamp():', date.fromtimestamp(time.time()) #從unix時間戳轉換成易于閱讀的正常日期格式
</pre> ---- 輸出結果 如下----
date.max: 9999-12-31
date.min: 0001-01-01
date.today(): 2013-08-29
date.fromtimestamp(): 2013-08-29</pre> datetime模塊的date類常用方法和屬性代碼演示
now = date(2013,8, 30)
yesterday = now.replace(day = 29) #通過datetime的replace方法生成一個新的日期,格式為:replace(year,month,day),這句代碼只替換了日,所以生成的新日期就是:datetime.date(2013, 8, 29) print 'now:', now, ', yesterday:',yesterday #打印今天和昨天的日期 print 'timetuple():', now.timetuple() #返回日期對應的time.struct_time對象 print 'weekday():', now.weekday() #返回星期幾,星期一為0 print 'isoweekday():', now.isoweekday() #同樣是返回星期幾,星期一為1 print 'isocalendar():', now.isocalendar() #返回包括(年,第幾周,星期幾)的元祖,比如(2013,35,5)表示2013年第35周星期5 print 'isoformat():', now.isoformat() #返回格式如'YYYY-MM-DD’的字符串</pre> 輸出結果如下:
now: 2013-08-30 , yesterday: 2013-08-29 timetuple(): time.struct_time(tm_year=2013, tm_mon=8, tm_mday=30, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=4, tm_yday=242, tm_isdst=-1) weekday(): 4 isoweekday(): 5 isocalendar(): (2013, 35, 5) isoformat(): 2013-08-30</pre> datetime模塊的time類常用方法
# -- coding: utf-8 -- from datetime import * tm = time(10, 13, 45) #生成一個time對象 print 'tm:', tm print 'hour: %d, minute: %d, second: %d, microsecond: %d' % (tm.hour, tm.minute, tm.second, tm.microsecond) #分別輸出時分秒和毫秒 tm1 = tm.replace(hour = 11) #替換time的小時部分,完成的方法是replace(hour,minute,second) print 'tm1:', tm1 tm2 = tm.replace(minute = 30) #替換time的分鐘部分,完成的方法是replace(hour,minute,second) print 'tm2:', tm2 tm3 = tm.replace(second = 12) #替換time的秒部分,完成的方法是replace(hour,minute,second) print 'tm3:', tm3 print 'isoformat():', tm.isoformat()</pre> 輸出結果如下
tm: 10:13:45 hour: 10, minute: 13, second: 45, microsecond: 0 tm1: 11:13:45 tm2: 10:30:45 tm3: 10:13:12 isoformat(): 10:13:45</pre> datetime模塊的datetime類常用方法代碼詳解
# -- coding: utf-8 -- from datetime import * import timeprint 'datetime.max:', datetime.max #輸出datetime的最大值 print 'datetime.min:', datetime.min #輸出datetime的最小值 print 'datetime.resolution:', datetime.resolution #datetime的精度 print 'today():', datetime.today() #輸出今天日期和時間 print 'now():', datetime.now() #輸出當前日期和時間 print 'utcnow():', datetime.utcnow() #輸出utc標準日期和時間,# 中國位于+8時間,與UTC時間相差8小時 print 'fromtimestamp(tmstmp):', datetime.fromtimestamp(time.time()) #從unix時間戳轉換成正常易于閱讀的本地日期時間格式 print 'utcfromtimestamp(tmstmp):', datetime.utcfromtimestamp(time.time()) #從unix時間戳轉換成utc日期時間格式
</pre> 輸出結果如下:
datetime.max: 9999-12-31 23:59:59.999999 datetime.min: 0001-01-01 00:00:00 datetime.resolution: 0:00:00.000001 today(): 2013-08-30 10:19:47.260000 now(): 2013-08-30 10:19:47.260000 utcnow(): 2013-08-30 02:19:47.260000 fromtimestamp(tmstmp): 2013-08-30 10:19:47.260000 utcfromtimestamp(tmstmp): 2013-08-30 02:19:47.260000</pre> datetime格式化輸出代碼演示
dt = datetime.now()
print '(%Y-%m-%d %H:%M:%S %f): ', dt.strftime('%Y-%m-%d %H:%M:%S %f')
print '(%Y-%m-%d %H:%M:%S %p): ', dt.strftime('%y-%m-%d %I:%M:%S %p')
print '%%a: %s ' % dt.strftime('%a')
print '%%A: %s ' % dt.strftime('%A')
print '%%b: %s ' % dt.strftime('%b')
print '%%B: %s ' % dt.strftime('%B')
print '日期時間%%c: %s ' % dt.strftime('%c')
print '日期%%x:%s ' % dt.strftime('%x')
print '時間%%X:%s ' % dt.strftime('%X')
print '今天是這周的第%s天 ' % dt.strftime('%w')
print '今天是今年的第%s天 ' % dt.strftime('%j')
print '今周是今年的第%s周 ' % dt.strftime('%U')</pre> 輸出結果如下:
(%Y-%m-%d %H:%M:%S %f): 2013-08-30 10:22:30 635000 (%Y-%m-%d %H:%M:%S %p): 13-08-30 10:22:30 AM %a: Fri %A: Friday %b: Aug %B: August 日期時間%c: 08/30/13 10:22:30 日期%x:08/30/13 時間%X:10:22:30 今天是這周的第5天 今天是今年的第242天 今周是今年的第34周</pre> 在date和time類中出現的很多方法,在datetime中也都有,調用方式也差不多