Python系列 42 内置模块:datetime

datetime简介

datetime模块是Python内置模块,相比于time模块能够更加方便的操纵时间。

官方文档

以下举例部分常用方法:

方法描述
datetime.datetime()实例化返回一个datetime的对象
datetime.datetime.now()获取本地时间,返回一个datetime的对象
datetime.datetime.utcnow()获取世界时间,返回一个datetime的对象
datetime.datetime.fromtimestamp()放入时间戳时间,直接转换为本地的datetime对象时间
datetime.datetime.utcfromtimestamp()放入时间戳时间,直接转换为世界的的datetime对象时间
datetime.timedelta()在一个datetime对象时间的基础上进行加减,返回一个新的datetime的对象
datetime.datetime.weekday()放入一个datetime对象,获取该对象是那一周的第几天,从0开始计算,一周就是0-6

对象获取

datetime.datetime.now()和datetime.datetime.utcnow()都可以获取一个表示当前时间的datetime对象。

>>> import datetime
>>> datetime.datetime.now()
datetime.datetime(2021, 5, 22, 23, 31, 43, 468077)
>>> datetime.datetime.utcnow()
datetime.datetime(2021, 5, 22, 15, 31, 52, 841214)

为datetime.datetime.fromtimestamp()放入一个时间戳可直接获取到表示本地时间的datetime的对象:

>>> datetime.datetime.fromtimestamp(11111)
datetime.date(1970, 1, 1)
>>> datetime.datetime.utcfromtimestamp(11111)
datetime.datetime(1970, 1, 1, 3, 5, 11)

datetime对象是str类型的更高一级封装,你可以将datetime对象转换为str类型:

>>> str(datetime.datetime.now())
'2021-05-23 00:06:03.271989'

对象属性

一个datetime对象拥有很多时间属性,如下表所示:

属性描述
year年份(int)
month月份(int)
day天数(int)
hour时数(int)
minute分数(int)
second秒数(int)
microsecond毫秒数(int)

你可以快速的获取它们:

>>> currentTime = datetime.datetime.now()
>>> currentTime.year
2021
>>> currentTime.month
5
>>> currentTime.day
22
>>> currentTime.hour
23
>>> currentTime.minute
48
>>> currentTime.second
52
>>> currentTime.microsecond
527012

对象方法

一个datetime对象拥有很多方法,如下表所示:

方法描述
datetimeObject.timestamp()返回一个时间戳,不同于time模块的时间戳,该方法返回的是一个float类型
datetimeObject.timetuple()返回与time.localtime()兼容的本地时间元组
datetimeObject.utctimetuple()返回与time.gmtime()兼容的UTC时间元组
datetimeObject.ctime()返回ctime()样式字符串
datetimeObject.isoformat()根据ISO格式返回时间字符串
datetimeObject.strptime()类似于time.strptime()
datetimeObject.tzname()返回时区名字
datetimeObject.replace()替换一个字符串格式的时间中某部分,返回一个新的datetime的对象

由于这些方法使用的时候并不多,所以只举例一个时间替换。

将当前时间的年份替换为1998年:

>>> currentTime = datetime.datetime.now()
>>> currentTime.replace(year=1998)
datetime.datetime(1998, 5, 23, 0, 22, 24, 698922)

时间加减

datetime对象允许通过和datetime.timedelta()进行加减,以便进行时间的计算。

  • 时间加减中不支持年份的计算,可以用365天代替

当前时间加3天:

>>> sum3dayTime = datetime.timedelta(+3) + currentTime
>>> sum3dayTime
datetime.datetime(2021, 5, 26, 0, 15, 15, 405378)

当前时间-3天:

>>> sub3dayTime = datetime.timedelta(-3) + currentTime
>>> sub3dayTime
datetime.datetime(2021, 5, 20, 0, 15, 15, 405378)

当前时间加3小时:

>>> sum3hours = datetime.timedelta(hours=+3) + currentTime
>>> sum3hours
datetime.datetime(2021, 5, 23, 3, 15, 15, 405378)

当前时间减3小时:

>>> sub3hours = datetime.timedelta(hours=-3) + currentTime
>>> sub3hours
datetime.datetime(2021, 5, 22, 21, 15, 15, 405378)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值