datetime模块是基本日期和时间类型,提供了以简单和复杂的方式操作日期和时间的类.可以进行输出格式化操作.<!-- more -->

日期和时间对象有两种:naive 和 aware .
datetime并且time 对象具有可选的时区信息属性,tzinfo可以将其设置为抽象tzinfo类的子类的实例.

常量datetime.MINYEAR: 一个date或一个datetime对象中允许的最小年份数。 MINYEAR是1.datetime.MAXYEAR: 一个date或一个datetime对象中允许的最大年份数。 MAXYEAR是9999.可用类的类型class datetime.date理想化的天真日期,属性: year,month,和 day。class datetime.time理想化的时间.属性: hour,minute,second,microsecond,和tzinfo.class datetime.datetime日期和时间的组合。属性:year,month, day,hour,minute,second,microsecond,和tzinfo。class datetime.timedelta表达两者之间的差异的持续时间date,time或datetime实例微秒的分辨率class datetime.tzinfo时区信息对象的抽象基类。这些由 datetime和和time类一起用于提供可定制的时间调整概念.class datetime.timezone将tzinfo抽象基类实现为与UTC的固定偏移量的类.date类的类方法和类属性

一个date对象代表一个理想化的日历日期(年,月,日),当前的公历无限期延长两个方向。1年1月1日称为第1天,1年1月2日称为第2天

类方法:

datetime.date(year, month, day) 参数是必需的,可以是整数.date.today() 返回今天的日期.date.fromtimestamp() 返回与POSIX时间戳对应的本地日期.date.fromordinal() 返回对应于公历格里高利序数的日期.

类属性:

date.min属性: 表示最早的月日(1.1)date.max属性: 最晚的月日(12.31)date.resolution: 非相等日期对象之间可能存在的最小差异, timedelta(days=1)。实例属性(只读):date.year 打印年份.date.month: 月份(1-12月)date.day: 给定年份的给定月份的1和之间的天数.

注意: 日期可以用作字典键。在布尔上下文中,所有date 对象都被认为是真的。

实例方法:

date.replace方法

date.replace(year = self.year,month = self.month,day = self.day): 返回具有相同值的日期.

date.timetuple():返回元组类型的本地时间.date.toordinal(): 返回日期的公历序数.date.weekday() 以星期为单位返回星期几.其中星期一为0,星期日为6.date.isoweekday():以星期为单位返回星期几,星期一为1,星期日为7.date.isocalendar():返回3元组(月份,周,工作日)date.isoformat(): 返回表示ISO 8601格式的日期字符串'YYYY-MM-DD'.date.str(): 对于日期d,str(d)相当于d.isoformat().date.ctime() : 返回表示日期的字符串.date.strftime(format): 返回表示日期的字符串,由显式格式字符串控制。引用小时,分钟或秒的格式代码将显示0值.

date.format(format):和date.strftie()相同.

计算事件天数

参考libdate.py文件.

timedelta对象

 timedelta对象表示的持续时间,两个日期或时间之间的差.

class datetime.timedelta(days = 0,seconds = 0,microseconds = 0,milliseconds = 0,minutes = 0,hours = 0,weeks = 0

参数可以是整数,浮点数,正数或负数.

参数转换:

毫秒转换为1000微秒。一分钟转换为60秒。一小时转换为3600秒。一周转换为7天类属性:timedelta.min : 负数的timedelta对象.timedelta.max : 最大的timedelta对象.timedelta.resolution : 非平等timedelta物体之间可能存在的最小差异.实例属性

实例属性(只读)

days 介于-999999999和999999999之间.seconds: 介于0和86399之间.microseconds: 介于0和999999之间.

timedelta对象还支持使用date和datetime 对象进行某些添加和减少.
timedelta对象是可散列的(可用作字典键).

实例方法:timedelta.total_seconds(): 返回持续时间中包含的总秒数datetime对象

包含来自所有信息的单个对象date的对象和time对象。

构造函数:

class datetime.datetime(year, month, day, hour=0, minute=0, second=0, microsecond=0, tzinfo=None, *, fold=0)

年,月,日参数是必需的。 tzinfo可以是None,或者是tzinfo子类的实例。其余参数可以是整数.

datetime对象的类方法datetime.today(): 返回当前的本地日期时间.datetime.now(tz = None): 返回当前的本地日期和时间.datetime.utcnow(): 返回当前的UTC日期和时间.datetime.fromtimestamp(timestamp,tz = None):返回与POSIX时间戳对应的本地日期和时间.datetime.utcfromtimestamp(timestamp): 返回与datetimePOSIX时间戳对应 的UTC.datetime.fromordinal(ordinal): 返回datetime相应的公历格里高利序数,其中第1年1月1日有序数1.datetime.combine(date, time, tzinfo=self.tzinfo): 返回一个新datetime对象,其日期组件等于给定date对象,其时间组件等于给定time对象.datetime.strptime(date_string, format): 返回datetime对应的date_string,根据格式解析.datetime对象的类属性datetime.min: 最早的datetime,日期和时间.datetime.max: 最晚的datetime,日期和时间.datetime.resolution: 非平等datetime物体之间可能存在的最小差异.实例属性

实例属性(只读)

datetime.year: 年datetime.month: 介于1到12之间.datetime.day: 在给定年份的给定月份的1和之间的天数.datetime.hour: 范围(24小时)datetime.minute:60分钟.datetime.second: 60秒.datetime.microsecond: 1000000毫秒.datetime.tzinfo: 该对象作为tzinfo参数传递给datetime构造函数.datetime.fold: 用于消除重复间隔期间的偏移时间.

datetime对象可以用作字典键.

实例方法datetime.date(): 返回年月日的对象.datetime.time(): 以相同的小时,分钟,秒,微秒和折叠返回对象。折叠值被复制到返回的time对象.datetime.timetz(): 返回time具有相同小时,分钟,秒,微秒,折叠和tzinfo属性的对象.

datetime.replace()

datetime.replace(year=self.year, month=self.month, day=self.day, hour=self.hour, minute=self.minute, second=self.second, microsecond=self.microsecond, tzinfo=self.tzinfo, * fold=0)

返回具有相同属性的日期时间.

datetime.astimezone(tz=None): 返回datetime具有新tzinfo属性tz的对象,调整日期和时间数据.tz必须是tzinfo子类的实例.datetime.utcoffset(): 如果tzinfo是None,则返回None,否则返回 self.tzinfo.utcoffset(self),并在后者未返回时引发异常None,或者timedelta表示大小小于一天的整数分钟的对象.datetime.dst(): 如果tzinfo是None,则返回None,否则返回 self.tzinfo.dst(self),并在后者未返回时引发异常 None,或者timedelta表示大小小于一天的整数分钟的对象。datetime.tzname(): 如果tzinfo是None,则返回None,否则返回 self.tzinfo.tzname(self),如果后者不返回None或者是字符串对象,则引发异常.datetime.timetuple():返回time.struct_timedatetime.utctimetuple(): datetime.toordinal(): 返回日期的格里高利序数.datetime.timestamp(): 返回与datetime 实例对应的POSIX时间戳.该timestamp()方法使用该fold属性消除重复间隔期间的时间歧义.datetime.weekday(): 以星期为单位返回星期几,其中星期一为0.datetime.isoweekday(): 以星期为单位返回星期几,星期一为1.datetime.isocalendar(): 返回3元组(年,星期编号,工作日)datetime.isoformat(sep ='T',timespec ='auto'): 返回表示ISO 8601格式的日期和时间的字符串.datetime.str(): 相当于d.isoformat(' ')datetime.ctime(): 返回表示日期和时间的字符串.datetime.strftime(format): 返回表示日期和时间的字符串,由显式格式字符串控制.datetime.format(format): 返回表示日期和时间的字符串,由显式格式字符串控制.time对象

time对象表示一天中的时间,可以通过tzinfo对象调整.

class datetime.time(hour=0, minute=0, second=0, microsecond=0, tzinfo=None, *, fold=0)类属性time.min: 最早的时间.time.max: 最新的时间.time.resolution: 非相等time对象 之间可能存在最小差异.实例属性

实例属性(只读)

time.hour: 24小时.time.minute: 60分钟time.second: 60stime.microsecond: 1000000time.tzinfo: 该对象作为tzinfo参数传递给time构造函数time.fold: 消除重复间隔期间的墙壁时间.实例方法

time.replace方法

time.replace(hour=self.hour, minute=self.minute, second=self.second, microsecond=self.microsecond, tzinfo=self.tzinfo, * fold=0)
返回time具有相同值的a

time.isoformat(timespec ='auto'): 返回表示ISO 8601格式的时间的字符串.time.strftime(format): 返回表示时间的字符串,由显式格式字符串控制.timezone 对象

每一个实例,其中表示通过从UTC的固定偏移定义的时区.

class datetime.timezone(offset, name=None)
所述偏移参数必须被指定为timedelta 代表的本地时间和UTC之间的差对象

timezone.utcoffset(dt): 返回timezone构造实例时指定的固定值.

timezone.tzname(dt): 返回timezone构造实例时指定的固定值.

timezone.dst(dt): 返回None.

类属性:
timezone.utc
UTC时区,timezone(timedelta(0))。

format time结构化表示

%a : 简化星期名称%A : 本地完整星期名称%b : 本地简化月份名称%B : 本地完整月份名称%c : 本地相应的日期和时间表示.%d : 一个月中的第几天(01-31)%H : 一天中的第几个小时(24小时制,00-23)%I : 第几个小时(12小时制,01-12)%j : 一年中的第几天(001-366)%m : 月份(01-12)%M : 分钟数(00-59)%p : 本地am或者pm的对应符.%S : 秒(01-61)%U : 一年中的星期数.(00-53星期天是一个星期的开始),第一个星期天之前的所有天数都放在第0周.%w : 一个星期中的第几天(0-6,0是星期天)%W : 和%U基本相同,不同的是%W以星期一为一个星期的开始.%x : 本地相应日期.%X : 本地相应时间.%y : 去掉世纪的月份(00-99)%Y : 完整月份.%Z : 时区的名字(不存在就为空字符)%% : '%'字符.