datetime模塊定義了下面這幾個類:
datetime.date:表示日期的類。常用的屬性有year, month, day.datetime.time:表示時間的類。常用的屬性有hour, minute, second, microsecond.datetime.datetime:表示日期時間。datetime.timedelta:表示時間間隔,即兩個時間點之間的長度。datetime.tzinfo:與時區有關的相關信息
datetime模塊定義了下面這幾個類:
datetime.date:表示日期的類。常用的屬性有year, month, day.datetime.time:表示時間的類。常用的屬性有hour, minute, second, microsecond.datetime.datetime:表示日期時間。datetime.timedelta:表示時間間隔,即兩個時間點之間的長度。datetime.tzinfo:與時區有關的相關信息。(這裡不詳細充分討論該類,感興趣的童鞋可以參考python手冊)
注 :上面這些類型的對象都是不可變(immutable)的。
下面詳細介紹這些類的使用方式。
date類
date類表示一個日期。日期由年,月,日組成。
date類的構造函數如下:
class datetime.date(year, month, day):
注意:
year的范圍是[MINYEAR, MAXYEAR],即[1, 9999]
month的范圍是[1, 12]
day的最大值根據給定的year, month參數來決定。例如閏年2月份有29天.
date類定義一些常用的類方法與類屬性l:
date.max、date.min:
date對象所能表示的最大、最小日期.
date.resolution: date對象表示日期的最小單位。
date.today():返回一個表示當前本地日期的date對象.
date.fromtimestamp(timestamp): 根據給定的時間戮,返回一個date對象.
datetime.fromordinal(ordinal):將Gregorian日歷時間轉換為date對象.
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):自定義格式化字符串。
date 還對某些操作進行了重載,它允許我們對日期進行如下一些操作:
date2 = date1 + timedelta # 日期加上一個間隔,返回一個新的日期對象(timedelta將在下面介紹,表示時間間隔)
date2 = date1 - timedelta # 日期隔去間隔,返回一個新的日期對象
timedelta = date1 - date2 # 兩個日期相減,返回一個時間間隔對象
date1 < date2 # 兩個日期進行比較
注:對日期進行操作時,要防止日期超出它所能表示的范圍。
使用例子:
>>> now = date(2012, 02, 24)
>>> tomorrow = now.replace(day = 28)
>>> print 'now:', now, ', tomorrow:', tomorrow
now: 2012-02-24 , tomorrow: 2012-02-28
>>> print 'timetuple():', now.timetuple()
timetuple(): (2012, 2, 24, 0, 0, 0, 4, 55, -1)
>>> print 'weekday():', now.weekday()
weekday(): 4
>>> print 'isoweekday():', now.isoweekday()
isoweekday(): 5
>>> print 'isocalendar():', now.isocalendar()
isocalendar(): (2012, 8, 5)
>>> print 'isoformat():', now.isoformat()
isoformat(): 2012-02-24