Python 日期操作


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

  • 1
  • 2
  • 3
  • 下一页

相关内容