Python datetime模块参考手册
Python提供了多个内置模块用于操作日期时间,像 calendar,time,datetime。time模块提供的接口与C标准库 time.h 基本一致。相比于 time 模块,datetime模块的接口则更直观、更容易调用。
模块定义了两个常量:
• datetime.MINYEAR
• datetime.MAXYEAR
这两个常量分别表示 datetime 所能表示的最小、最大年份。其中,MINYEAR = 1,MAXYEAR = 9999。
datetime 模块定义了下面这几个类:
• datetime.date:表示日期的类。常用的属性有year, month, day;
• datetime.time:表示时间的类。常用的属性有hour, minute, second, microsecond;
• datetime.datetime:表示日期时间。• datetime.timedelta:表示时间间隔,即两个时间点之间的长度。
• datetime.tzinfo:与时区有关的相关信息。
注:以上列举的这些类型的对象都是不可变(immutable)的。
date 类
date 类表示一个日期(由年、月、日组成),其原型如下:
class datetime.date(year, month, day)
参数说明:
• year 的范围是 [MINYEAR, MAXYEAR],即 [1, 9999];
• month 的范围是[1, 12]。(月份是从1开始的,不是从0开始);
• day 的最大值根据给定的year, month参数来决定。例如闰年2月份有29天;
date 类定义了一些常用的类方法与类属性:
• date.max、date.min:date对象所能表示的最大、最小日期;
• date.resolution:date对象表示日期的最小单位。这里是天。
**• date.today():**返回一个表示当前本地日期的 date 对象;
**• date.fromtimestamp(timestamp):**根据给定的时间戮,返回一个 date 对象;
• datetime.fromordinal(ordinal):将Gregorian日历时间转换为date对象;(Gregorian Calendar:一种日历表示方法,类似于我国的农历,西方国家使用比较多,此处不详细展开讨论。)
使用示例:
datetime.date.maxdatetime.date(9999, 12, 31)>>> datetime.date.mindatetime.date(1, 1, 1)>>> datetime.date.resolutiondatetime.timedelta(1)>>> datetime.date.today()datetime.date(2016, 5, 12)>>> datetime.date.fromtimestamp(time.time())datetime.date(2016, 5, 12)
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):自定义格式化字符串。
使用示例:
today = datetime.date.today()>>> today.year2016>>> today.month5>>> today.day12>>> tomorrow = today.replace(day=13)>>> tomorrowdatetime.date(2016, 5, 13)>>> tomorrow.timetuple()time.struct_time(tm_year=2016, tm_mon=5, tm_mday=13, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=4, tm_yday=134, tm_isdst=-1)>>> tomorrow.toordinal()736097>>> tomorrow.weekday()4>>> tomorrow.isoweekday()5>>> tomorrow.isocalendar()(2016, 19, 5)>>> tomorrow.isoformat()‘2016-05-13’>>> tomorrow.strftime("%y-%m-%d")‘16-05-13’
date 重载了简单的运算符:
date 允许对日期进行加减和比较:
• date2 = date1 + timedelta:
日期加上一个间隔,返回一个新的日期对象
• date2 = date1 - timedelta:
日期隔去间隔,返回一个新的日期对象• timedelta = date1 - date2:
两个日期相减,返回一个时间间隔对象
• date1 < date2:
两个日期进行比较。
使用示例:
now = datetime.date.today()>>> nowdatetime.date(2016, 5, 12)>>> now += datetime.date.resolution>>> nowdatetime.date(2016, 5, 13)>>> now -= datetime.date.resolution>>> nowdatetime.date(2016, 5, 12)>>> now < datetime.date.maxTrue