Python的datetime模块有哪些类型
本篇内容介绍了“Python的datetime模块有哪些类型”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
datetime 模块提供了可以通过多种方式操作日期和时间的类。在支持日期时间数学运算的同时,实现的关注点更着重于如何能够更有效地解析其属性用于格式化输出和数据操作。
datetime 模块中提供了六种可用类型,分别是:
1、类 datetime.date:表示一个理想日期,属性有 year、month、day;
2、类 datetime.time:表示一个理想时间,属性有 hour、minute、second、microsecond 和 tzinfo;
3、类 datetime.datetime:表示日期和时间的组合,属性有 year、month、day、hour、minute、second、microsecond 和 tzinfo;
4、类 datetime.timedelta:表示两个 date 对象或者 time 对象,或者 datetime 对象之间的时间间隔,精确到微秒。属性有 days、seconds、microsecond;
5、类 datetime.tzinfo:表示时区信息对象的抽象基类,用于给 datetime 类和 time 类提供自定义的时间调整概念(例如,负责时区或者夏令时)。
6、类 datetime.timezone:一个实现了 tzinfo 抽象基类的子类,用于表示相对于 世界标准时间(UTC)的偏移量。
在以上六种可用类型中,datetime 为 date 的子类,timezone 为 tzinfo 的子类。另外除了以上六种类型,datetime 模块还提供了两个常量,datetime.MINYEAR:表示 date 或 datetime 对象中允许的最小年份,其值为 1;datetime.MAXYEAR:表示 date 或 datetime 对象中允许的最大年份, 其值为 9999。
下面将详细介绍前四种可用类型
datetime.date
date 是一种具体日期类型,它的实例对象支持大于、小于、大于等于、小于等于、等于运算,得到 bool 值;支持加上一个 timedelta 对象的加法运算,得到 date 对象;支持减去一个 date 或 timedelta 对象的减法运算,得到 timedelta 或 datetime 对像。
另外,date 对象可以作为字典的键,在布尔上下文中,所有 date 对象都被认为是 True。
详细介绍如下:
构造函数: datetime.date(year, month, day)
参数:
第一个参数表示年,取值范围为 MINYEAR <= year <= MAXYEAR; MINYEAR=1, MAXYEAR=9999
第二个参数表示月,取值范围为 1 <= month <= 12
第三个参数表示日,取值范围为 1 <= day <= 给定年份该月份的最大天数
类属性
min:可表示的最早期日,即 date(MINYEAR, 1, 1)
max: 可表示的最大日期,即 date(MAXYEAR, 12, 31)
resolution:非相等日期之间的最小可能差异,即 timedelta(days=1)
类方法(常用构造方法)
fromtimestamp(cls, t)
功能:返回与 POSIX 时间戳对应的本地日期
参数:cls 表示 date 类,t 表示时间戳
返回值:一个 date 对象
today(cls)
功能:获取当前时刻的日期
参数:cls 表示 date 类,自动传入
返回值:一个 date 对象
fromisoformat(cls, date_string)
功能:从提供的 date_string 中构造一个日期
参数:cls 表示 date 类;date_string 表示日期字符串,其格式为 YYYY-MM-DD
返回值:一个 date 对象
实例属性(只读,其实是静态属性)
year:返回年
month:返回月
day:返回日
实例方法(常用)
ctime(self)
功能:返回 ctime() 风格的日期字符串
参数:self 表示对象本身
返回值:一个字符串
strftime(self, format)
功能:按照指定的格式返回日期
参数:self 表示对象本身,format 表示格式字符串
返回值:一个字符串
isoformat(self)
功能:返回根据 ISO 格式化的日期。格式为:YYYY-MM-DD
参数:self 表示对象本身
返回值:一个字符串
replace(year=self.year, month=self.month,day=self.day)
功能:为指定字段返回具有新值的新日期
参数:分别是年,月,日,不提供则默认为 self 对应的值
返回值:一个新的 date 对象
timetuple(self)
功能:返回与 time.localtime() 兼容的本地时间元组
参数:self 表示对象本身
返回值:时间元组
weekday(self)
功能:以整数形式返回星期几,其中星期一为 0,星期日为 6
参数:self 表示对象本身
返回值:一个整数
isoweekday(self)
功能:以整数形式返回星期几,其中星期一为 1,星期日为 7
参数:self 表示对象本身
返回值:一个整数
isocalendar(self)
功能:返回I年、第几周、周几
参数:self 表述对象本身
返回值:返回一个包含ISO年,周号和工作日的三元组。
datetime.datetime
datetime 模块下的 datetime 是 date 类的一个子类,它的实例对象支持大于、小于、大于等于、小于等于运算,得到 bool 值;支持加上一个 timedelta 对象的加法运算,得到 datetime 对象;支持减去一个 datetime 或 timedelta 对象的减法运算,得到 timedelta 或 datetime 对像。
datetime 对象还可以作为字典的键值,并且,在 bool 上下文中,datetime 对象都被认为是 True。
详细介绍如下:
构造函数:datetime.datetime(year, month, day, hour=0, minute=0, second=0, microsecond=0, tzinfo=None, *, fold=0)
其中,year、month 和 day 是必须要传入的参数,hour、minute、second、microsecond、fold 默认为 0, tzinfo 默认为 None,也可以传入 tzinfo 子类的实例( tzinfo 是一个抽象类)
注意:除 tzinfo 外,其他参数都要是整数
参数:
第一个参数表示年,取值范围为 MINYEAR <= year <= MAXYEAR; MINYEAR=1, MAXYEAR=9999
第二个参数表示月,取值范围为 1 <= month <= 12
第三个参数表示日,取值范围为 1 <= day <= 给定年份该月份的最大天数
第四个参数表示时,取值范围为 0 <= hour <= 23
第五个参数表示分,取值范围为 0 <= minute <= 59
第六个参数表示秒,取值范围为 0 <= second <= 59
第七个参数表示微秒,取值范围为 0 <= microsecond < 1000000
第八个参数表示时区信息对象,默认 tzinfo=None,一般用不到
fold 参数是3.6版本新加入的,取值范围为[0, 1]。该参数需要以关键字的形式传入
fold 参数的详解请参考:docs.python.org/3/library/datetime.html#datetime-objects
类属性:
min:表示最早的 datetime 对象, 同于 datetime(MINYEAR, 1, 1, tzinfo=None)
max:表示最晚的 datetime 对象, 同于 datetime(MAXYEAR, 12, 31, 23, 59, 59, 999999, tzinfo=None)
resolution:表示两个非相等 datetime 对象之间可能的最小差
类方法(常用构造方法):
fromtimestamp(cls, t, tz=None)
功能:根据时间戳构造一个 datetime 对象
参数:cls表示 datetime 类(自动传入),t 表示时间戳, tz表示时区信息对象,默认为 None
返回值:一个 datetime 的实例对象
utcfromtimestamp(cls, t)
功能:创建一个 UTC 时间 的 datetime 对象
参数:cls 表示 datetime 类, t 表示时间戳
返回值:一个 datetime 对象
now(cls, tz = None)
功能:获取当前的时间,格式为:2019-09-29 15:40:01.972076
参数:cls表示 datetime 类(自动传入),tz表示时区信息对象,默认为 None
返回值:基于当前时刻的时间戳创建的 datetime 对象
说明:其实就是 t = time.time(); return cls.fromtimestamp(t, tz)
utcnow(cls)
功能:获取当前的 UTC 时间, 格式为:2019-10-08 00:03:34.749434
参数:cls表示 datetime 类(自动传入)
返回值:一个 datetime 对象
说明:其实就是 t = time.time(); return cls.utcfromtimestamp(t)
combine(cls, date, time, tzinfo=True)
功能:根据给定的日期和时间创建一个 datetime 对象。如果提供了tzinfo 参数,则使用其值设置返回对象的 tzinfo 属性,否则使用time参数的tzinfo属性
参数:cls 表示 datetime 类,date 表示日期对象,time 表示时间对象
返回值:一个datetime 对象
fromisoformat(cls, date_string)
功能:根据 date_string 给定的格式创建一个 datetime 对象
参数:cls 表示 datetime 类,date_string 表示一个时间日期字符串,其格式为:YYYY-MM-DD[*HH[:MM[:SS[.fff[fff]]]][+HH:MM[:SS[.ffffff]]]]
返回值:一个 datetime 对象
说明:若字符串中没有包含时分秒,则其值默认为零
strptime(cls, date_string, format)
功能:按照给定的格式解析表示时间日期的字符串,并以此创建一个 datetime 对象
参数:cls 表示类本身,date_string 表示时间日期字符串(如:'2019-11-06'),format 表示格式字符串(如:'%Y-%m-%d')
返回值:一个 datetime 对象
实例属性(只读,其实是静态属性)
year:返回年
month:返回月
hour:返回小时
minute:返回分钟
second: 返回秒
microsecond: 返回微秒
tzinfo: 返回时区信息对象
fold: 返回 fold 的值(其实 fold 是类 datetime 在__new__方法中定义的一个默认为 0 的参数,需要以关键字参数的形式传入)
实例方法(常用)
timetuple(self)
功能:返回与 time.localtime() 兼容的本地时间元组
参数:self 表示对象本身
返回值:时间元组
timestamp(self)
功能:返回与对象相应的时间戳
参数:self 表示对象本身
返回值:一个浮点数,表示时间戳
utctimetuple(self)
功能:返回与time.gmtime()兼容的UTC时间元组
参数:self 表示对象本身
返回值:时间元组
date(self)
功能:返回对象的日期部分
参数:self 表示对象本身
返回值:一个 datetime.date 对象,表示日期部分
time(self)
功能:返回对象的时间部分
参数:self 表示对象本身
返回值:一个 tzinfo 为 None 的 datetime.time 对象,表示时间部分
timetz(self)
功能:返回对象的时间部分
参数:self 表示对象本身
返回值:返回一个时间部分和 tzinfo 属性与 self 相同的 datetime.time对象
replace(self, year=None, month=None, day=None, hour=None,
minute=None, second=None, microsecond=None, tzinfo=True,
*, fold=None)无锡妇科医院哪家好 http://mobile.xasgyy.net/
功能:返回为指定字段具有新值的新日期时间
参数:对象本身和年月日...
返回值:一个新的与 self 同类型的对象
ctime(self)
功能:返回代表时间和日期的字符串,格式为 ctime() 风格,如:Tue Oct 8 15:34:17 2019
参数:self 表示对象本身
返回值:一个表示时间日期的字符串
strftime(self, format)
功能:返回指定格式的时间日期字符串
参数:format 表示时间日期的格式字符串
返回值:一个字符串
weekday(self)
功能:返回星期几
参数:self 表示对象本身
返回值:一个[0, 6]的整数,0 表示星期一
isoweekday(self)
功能:返回星期几
参数:self 表示对象本身
返回值:一个[1, 7]的整数,1 表示星期一
isocalendar(self)
功能:返回I年、第几周、周几
参数:self 表述对象本身
返回值:返回一个包含ISO年,周号和工作日的三元组。
datetime.time
datetime 模块下的 time 类是一种具体的时间类型,它的实例代表一天(本地)的时间,与任何特定的日期无关,并且 time 对象可以通过 tzinfo 对象进行调整。time 的实例支持大于、小于、大于等于、小于等于的运算,并可以作为字典的键。在布尔上下文中,time 对象始终为 True
详细介绍如下:
构造函数: datetime.time(hour=0, minute=0, second=0, microsecond=0, tzinfo=None, *, fold=0)
它的各个参数的含义与范围都于 datetime 类中相应的参数相同,不同的是 datetime.time 类的所有参数都有默认值,
所以在创建 datetime.time对象时可以不传入任何参数
类属性:
min:表示最早的时间,即 time(0, 0, 0, 0)
max: 表示最晚的时间,即 time(23, 59, 59, 999999)
resolution:表示两个非相等 time 对象之间可能的最小差异,即 timedelta(microseconds=1)
# 这里需要注意,datetime.time 对象不支持算术运算
类方法(常用构造方法)
fromisoformat(cls, time_string)
功能:按 time_string 提供的格式构造一个 time 对象
参数:cls 表示 datetime.time 类,time_string 表示时间字符串
返回值:一个 datetime.time 对象
PS:time_string 提供的格式需要满足 time.isoformat() 要求的格式,具体为:HH[:MM[:SS[.fff[fff]]]][+HH:MM[:SS[.ffffff]]]
实例属性(只读,其实是静态属性)
hour:返回小时
minute:返回分钟
second: 返回秒
microsecond: 返回微秒
tzinfo: 作为 tzinfo 参数传递给时间构造函数的对象,如果没有传递则为 None。
fold: 返回 fold 的值,0 或 1
实例方法(常用)
isoformat(self, timespec='auto')
功能:以ISO格式返回表示时间的字符串,即 HH:MM:SS.ffffff,如果 microsecond为 0,则返回HH:MM:SS
参数:self 表示对象本身;timespec用于指定要包括的时间的其他组成部分的数量,它的值可以是下面的一种
'auto':如果 microsecond 是 0 则格式同 'seconds',否则同 'microseconds'
'hours':包含 hour,并采用 HH 格式
'minutes':包含 hour 和 minute,并采用 HH:MM 格式
'seconds':包含 hour、minute、second,并采用 HH:MM:SS 格式
'milliseconds':包括全部,但将小数秒部分截短(是直接舍去,而不是四舍五入)至毫秒。即 HH:MM:SS.sss 格式
'microseconds':包括 HH:MM:SS.ffffff 格式的全部时间。
返回值:一个字符串
strftime(self, format)
功能:返回表示时间的字符串,由明确的格式字符串控制
参数:self 表示对象本身,format 表示格式字符串,如:'%H:%M:%S'
返回值:一个字符串
datetime.timedelta
timedelta 类的实例表示持续时间,即两个日期或时间的差。它的对象支持比较运算,加或减去一个同类型对象,乘或除一个整数,一元加、减,和 abs 运算,支持 divmod() 函数;timedelta 还可以作为字典键。在布尔上下文中,当且仅当 timedelta 对象不为 timedelta(0) 时,表示为 True。
详细介绍如下:
构造函数: datetime.timedelta(days=0, seconds=0, microseconds=0, milliseconds=0, minutes=0, hours=0, weeks=0)
参数:所有参数都是可选的,且参数可以是整数或浮点数,也可以是正数或负数
类属性
min: 表示最负的 timedelta 对象,即 timedelta(-999999999)
max:表示最正的 timedelta 对象,即 timedelta(days=999999999, hours=23, minutes=59, seconds=59, microseconds=999999)
resolution:表示两个不相等的 timedelta 对象之间可能的最小差,即 timedelta(microseconds=1)
实例属性(只读,其实是静态属性)
days: 返回天数,介于-999999999和999999999之间
seconds: 返回秒数,介于0至86399(含)之间
microseconds:返回毫微秒数,介于0至999999(含)之间
实例方法
total_seconds(self)
功能:返回持续时间中包含的总秒数
参数:self表示对象本身
返回值:一个浮点数
“Python的datetime模块有哪些类型”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注编程网网站,小编将为大家输出更多高质量的实用文章!
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341