Python基本知识之datetime模块详解

 更新时间:2023年08月17日 09:16:58   作者:漠然是漠然  
这篇文章主要给大家介绍了关于Python基本知识之datetime模块的相关资料,Python内置的时间模块datetime包含下面的模块包含六个类和两个常数,提供了用于处理日期和时间的类和对应的方法,一般用于处理年、月、日、时、分、秒的统计和计算等需求,需要的朋友可以参考下

前言

time模块用于取得UNIX纪元时间戳,并加以处理。但是,如果以方便的格式显示日期,或对日期进行算数运算,就应该使用datetime模块。

1. datetime数据类型

1) datetime.datetime.now()表示特定时刻

datetime模块有自己的datetime数据类型。datetime值表示一个特定的时刻,如下示例代码:

调用datetime.datetime.now()返回一个datetime对象,表示当前的日期和时间,根据当前计算机的时钟。这个对象包含当前时刻的年、月、日、时、分、秒和微秒。

也可以利用datetime.datetime()函数,向它传入代表年、月、日、时、分、秒的整数,得到特定时刻的datetime对象。这些整数将保存在datetime对象的year、month、day、hour、minute和second属性中。

2)datetime.datetime.fromtimestamp()转换时间戳

UNIX纪元时间戳可以通过datetime.datetime.fromtimestamp(),转换为datetime对象。

datetime对象的日期和时间将根据本地时区转换,如下示例代码:

由此可看出表达式datetime.datetime.now()和datetime.datetime.fromtimestamp(time.time())做的事情相同,都是返回当前时刻的datetime对象。

3)用于比较操作符

datetime对象可以用比较操作符进行比较,弄清楚谁在前面。后面的datetime对象是“更大”的值,如下:

2. timedelta数据类型

1)timedelta数据类型表示一段时间

datetime模块还提供了timedelta数据类型,表示一段时间,而不是一个时刻:

  • 用datetime.timedelta()函数创建timedelta对象,此函数接收关键字参数weeks、days、hours、minutes、seconds、milliseconds和microseconds,这些关键字参数都是可选的。没有month和year关键字参数,因为“月”和“年”是可变的时间,依赖于特定月份或年份。
  • timedelta对象拥有的总时间以天、秒、微妙来表示,这些数字分别保存在days、seconds和microseconds属性中。
  • total_seconds()方法用于timedelta对象,返回timedelta对象表示的秒数。
  • 将一个timedelta对象传入str(),将返回格式良好的、人类可读的字符串。

2)进行日期运算

算数运算符可以用于对datetime值进行日期运算。例如,要计算今天之后1000天的日期:

如代码所示,Python将完成日期运算,弄清楚当前日期之后的1000天。这很有用,我们不用记住每个月有多少天、闰年的因素和其他棘手的细节,datetime模块会处理所有这些问题。

利用 + 和 - 运算符,timedelta对象与datetime对象或其他timedelta对象相加或相减。

利用 * 和 / 运算符,timedelta对象可以乘以或除以整数或浮点数。示例如下:

3. 将datetime对象转换为字符串 —— strftime()方法

UNIX纪元时间戳和datetime对象对人类来说都不是很友好可读。利用strftime()方法,可以将datetime对象显示为字符串。( strftime()函数命中的 f 表示格式,format)。

strftime()方法使用的指令类似于Python的字符串格式化。下表列出了完整的strftime()指令:

strftime()指令
strftime指令含义
%Y带世纪的年份,例如'2014'
%y不带世纪的年份,'00'至'99'(1970至2069)
%m数字表示的月份,'01'至'12'
%B完整的月份,例如'November'
%b简写的月份,例如'Nov'
%d一月中的第几天,'01'至'31'
%j一年中的第几天,'001'至'366'
%w一周中的第几天,'0'(周日)至'6'(周六)
%A完整的周几,例如'Monday'
%a简写的周几,例如'Mon'
%H小时(24小时时钟),'00'至'23'
%I小时(12小时时钟),'01'至'12'
%M分,'00'至'59'
%S秒,'00'至'59'
%p'AM'或'PM'
%%就是'%'字符

向strftime()传入一个定制的格式字符串,其中包含格式化指定(以及任何需要的斜线、冒号等),strftime()将返回一个格式化的字符串,表示datetime对象的信息。代码如下:

strftime(format)方法返回一个字符串,用format字符串中的定制格式来表示datetime对象表示的时间。

需要注意的是:strftime() 不是以 datetime.datetime 开始。

4. 将字符串转换成datetime对象 —— strptime()函数

如果有一个字符串的日期信息,如'2021/10/21 16:29:00'或'October 21, 2015', 需要转换为datetime对象,就用 datetime.datetime.strptime()函数。

strptime()函数与strftime()方法相反,但定制的格式字符串使用相同的指令,见上表strftime()指令。必须将格式字符串传入strptime(),这样它就知道如何解析和理解日期字符串。

strptime()函数命中的 p 表示解析,parse。示例代码如下:

 strptime()需要传入两个参数,第一个参数是需要转换的字符串,第二个参数是第一个参数对应的定制格式字符串。

datetime.datetime.strptime(time_string, format)函数返回一个datetime对象,它的时刻由time_string指定,利用format字符串参数来解析。

需要注意的是:带有日期信息的字符串必须准确匹配定制的格式字符串,否则Python将抛出ValueError异常。

总结

到此这篇关于Python基本知识之datetime模块详解的文章就介绍到这了,更多相关Python datetime模块内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Django实现auth模块下的登录注册与注销功能

    Django实现auth模块下的登录注册与注销功能

    这篇文章主要介绍了Django实现auth模块下的登录注册与注销功能,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-10-10
  • python使用requests.session模拟登录

    python使用requests.session模拟登录

    最近开发一套接口,写个Python脚本,使用requests.session模拟一下登录.本文通过实例代码给大家介绍python使用requests.session模拟登录,感兴趣的朋友跟随小编一起看看吧
    2019-08-08
  • Django多层嵌套ManyToMany字段ORM操作详解

    Django多层嵌套ManyToMany字段ORM操作详解

    这篇文章主要介绍了Django多层嵌套ManyToMany字段ORM操作详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-05-05
  • Pycharm 创建 Django admin 用户名和密码的实例

    Pycharm 创建 Django admin 用户名和密码的实例

    今天小编就为大家分享一篇Pycharm 创建 Django admin 用户名和密码的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-05-05
  • python 实现插入排序算法

    python 实现插入排序算法

    python 插入排序算法,需要的朋友可以参考下
    2012-06-06
  • django rest framework使用django-filter用法

    django rest framework使用django-filter用法

    这篇文章主要介绍了django rest framework使用django-filter用法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-07-07
  • Python开发加薪利器之Docker的使用实践

    Python开发加薪利器之Docker的使用实践

    docker利用容器技术,独立运行一个或者一组应用,docker是基于go语言开发,docker镜像好比是一个模版,可以通过这个模版来创建容器服务,今天通过本文给大家分享Docker的使用实践,感兴趣的朋友跟随小编一起看看吧
    2021-05-05
  • Django中的“惰性翻译”方法的相关使用

    Django中的“惰性翻译”方法的相关使用

    这篇文章主要介绍了Django中的“惰性翻译”方法的相关使用,Django是最具人气的Python web开发框架,需要的朋友可以参考下
    2015-07-07
  • 用Python实现BP神经网络(附代码)

    用Python实现BP神经网络(附代码)

    这篇文章主要介绍了用Python实现BP神经网络(附代码),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-07-07
  • Python 正则表达式入门(初级篇)

    Python 正则表达式入门(初级篇)

    本文主要为没有使用正则表达式经验的新手入门所写。由浅入深介绍了Python 正则表达式,有需要的朋友可以看下
    2016-12-12

最新评论