开发者

Python基本知识之datetime模块详解

开发者 https://www.devze.com 2023-11-19 10:10 出处:网络 作者: 漠然是漠然
目录前言1. datetime数据类型1) datetime.datetime.now()表示特定时刻2)datetime.datetime.fromtimestamp()转换时间戳3)用于比较操作符2. timedelta数据类型1)timedelta数据类型表示一段时间2)进行日期运算
目录
  • 前言
  • 1. datetime数据类型
    • 1) datetime.datetime.now()表示特定时刻
    • 2)datetime.datetime.fromtimestamp()转换时间戳
    • 3)用于比较操作符
  • 2. timedelta数据类型
    • 1)timedelta数据类型表示一段时间
    • 2)进行日期运算编程
  • 3. 将datetime对象转换为字符串 —— strftime()方法
    • 4. 将字符串转换成datetime对象 —— strptime()函数
      • 总结

        前言

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

        Python基本知识之datetime模块详解

        1. datetime数据类型

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

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

        Python基本知识之datetime模块详解

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

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

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

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

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

        Python基本知识之datetime模块详解

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

        3)用于比较操作符

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

        Python基本知识之datetime模块详解

        2. timedelta数据类型

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

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

        Python基本知识之datetime模块详解

        • 用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基本知识之datetime模块详解

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

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

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

        Python基本知识之datetime模块详解

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

        UNIX纪元时http://www.devze.com间戳和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对象的信息。代码如下:

        Python基本知识之datetime模块详解

        strftimephp(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。示例代码如下:

        Python基本知识之datetime模块详解

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

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

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

        总结

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

        0

        精彩评论

        暂无评论...
        验证码 换一张
        取 消

        关注公众号