Python的datetime时间、日期处理模块详解

奋斗吧
奋斗吧
擅长邻域:未填写

标签: Python的datetime时间、日期处理模块详解 MySQL博客 51CTO博客

2023-05-13 18:24:03 198浏览

Python的datetime时间、日期处理模块详解,Python的datetime时间、日期处理模块详解


【Linux干货教程】Ubuntu Linux 换源详细教程

Python的datetime时间、日期处理模块详解_时间

大家好,我是洲洲,欢迎关注,一个爱听周杰伦的程序员。关注公众号【程序员洲洲】即可获得10G学习资料、面试笔记、大厂独家学习体系路线等…还可以加入技术交流群欢迎大家在CSDN后台私信我!


本文目录

  • 前言
  • 1、datetime模块中定义的类
  • 2、datetime模块中定义的常量
  • 3、datetime.time类
  • 4、datetime.datetime类
  • 总结


前言

在跟Python打交道的过程中,经常需要用到日期与时间,如:

  • 作为日志信息的内容输出
  • 计算某个功能的执行时间
  • 用日期命名一个日志文件的名称
  • 记录或展示某文章的发布或修改时间

Python中提供了多个用于对日期和时间进行操作的内置模块:time模块、datetime模块和calendar模块。其中time模块是通过调用C库实现的,所以有些方法在某些平台上可能无法调用,但是其提供的大部分接口与C标准库time.h基本一致。time模块相比,datetime模块提供的接口更直观、易用,功能也更加强大。

本篇文章讲述datetime模块的相关用法与解法。

datetime模块提供了处理日期和时间的类,既有简单的方式,又有复杂的方式。

它虽然支持日期和时间算法,但其实现的重点是为输出格式化和操作提供高效的属性提取功能。

1、datetime模块中定义的类

通过这些类,我们可以搞清楚很多功能其实可以直接调用使用的。

Python的datetime时间、日期处理模块详解_时间_02

需要注意的是,这些类的对象不可变。 他们之间的关系如下所示:

object
 date
 datetime
 time
 timedelta
 tzinfo
 timezone

2、datetime模块中定义的常量

datetime模块中定义的常量如下:

Python的datetime时间、日期处理模块详解_datetime_03


其对象方法与属性如下:

Python的datetime时间、日期处理模块详解_python_04


模板案例代码如下:

>>> import time
>>> from datetime import date
>>>
>>> date.max
datetime.date(9999, 12, 31)
>>> date.min
datetime.date(1, 1, 1)
>>> date.resolution
datetime.timedelta(1)
>>> date.today()
datetime.date(2023, 5, 6)
>>> date.fromtimestamp(time.time())
datetime.date(2023, 5, 6)
>>>
>>> d = date.today()
>>> d.year
2017
>>> d.month
2
>>> d.day
4
>>> d.replace(2016)
datetime.date(2016, 2, 4)
>>> d.replace(2016, 3)
>>> d.replace(2016, 3, 2)
datetime.date(2016, 3, 2)
>>> d.timetuple()
time.struct_time(tm_year=2017, tm_mon=2, tm_mday=4, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=5, tm_yday=35, tm_isdst=-1)
>>> d.toordinal()
736364
>>> d.weekday()
5
>>> d.isoweekday()
6
>>> d.isocalendar()
(2023, 5, 6)
>>> d.isoformat()
'2023-05-06'
>>> d.ctime()
>>> d.strftime('%Y/%m/%d')
'2023/05/06'

3、datetime.time类

定义如下:

class datetime.time(hour, [minute[, second, [microsecond[, tzinfo]]]])
//其中hour为必须参数,其他为可选参数。各参数的取值范围为:

Python的datetime时间、日期处理模块详解_日期_05

Python的datetime时间、日期处理模块详解_datetime_06


案例代码如下:

>>> from datetime import time
>>>
>>> time.max
datetime.time(23, 59, 59, 999999)
>>> time.min
datetime.time(0, 0)
>>> time.resolution
datetime.timedelta(0, 0, 1)
>>>
>>> t = time(20, 5, 40, 8888)
>>> t.hour
20
>>> t.minute
5
>>> t.second
40
>>> t.microsecond
8888
>>> t.tzinfo
>>>
>>> t.replace(21)
datetime.time(21, 5, 40, 8888)
>>> t.isoformat()
'20:05:40.008888'
>>> t.strftime('%H%M%S')
'200540'
>>> t.strftime('%H%M%S.%f')
'200540.008888'

4、datetime.datetime类

datetime类的定义

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

year, month 和 day是必须要传递的参数, tzinfo可以是None或tzinfo子类的实例。

Python的datetime时间、日期处理模块详解_日期_07


Python的datetime时间、日期处理模块详解_datetime_08

Python的datetime时间、日期处理模块详解_python_09

>>> from datetime import datetime, timezone
>>>
>>> datetime.today()
datetime.datetime(2023, 5, 6, 20, 44, 40, 556318)
>>> datetime.now()
datetime.datetime(2023, 5, 6, 20, 44, 56, 572615)
>>> datetime.now(timezone.utc)
datetime.datetime(2023, 5, 6, 12, 45, 22, 881694, tzinfo=datetime.timezone.utc)
>>> datetime.utcnow()
datetime.datetime(2023, 5, 6, 12, 45, 52, 812508)
>>> import time
>>> datetime.fromtimestamp(time.time())
datetime.datetime(2023, 5, 6, 20, 46, 41, 97578)
>>> datetime.utcfromtimestamp(time.time())
datetime.datetime(2023, 5, 6, 12, 46, 56, 989413)
>>> datetime.combine(date(2023, 5, 6), t)
datetime.datetime(22023, 5, 6, 20, 5, 40, 8888)
>>> datetime.strptime('2017/02/04 20:49', '%Y/%m/%d %H:%M')
datetime.datetime(2023, 5, 6, 20, 49)
>>> dt = datetime.now()
>>> dt
datetime.datetime(2023, 5, 6, 20, 57, 0, 621378)
>>> dt.year
2017
>>> dt.month
2
>>> dt.day
4
>>> dt.hour
20
>>> dt.minute
57
>>> dt.second
0
>>> dt.microsecond
621378
>>> dt.tzinfo
>>> dt.timestamp()
1486213020.621378
>>> dt.date()
datetime.date(2023, 5, 6)
>>> dt.time()
datetime.time(20, 57, 0, 621378)
>>> dt.timetz()
datetime.time(20, 57, 0, 621378)
>>> dt.replace()
datetime.datetime(2023, 5, 6, 20, 57, 0, 621378)
>>> dt.replace(2016)
datetime.datetime(2023, 5, 6, 20, 57, 0, 621378)
>>> dt.timetuple()
time.struct_time(tm_year=2017, tm_mon=2, tm_mday=4, tm_hour=20, tm_min=57, tm_sec=0, tm_wday=5, tm_yday=35, tm_isdst=-1)
>>> dt.utctimetuple()
time.struct_time(tm_year=2017, tm_mon=2, tm_mday=4, tm_hour=20, tm_min=57, tm_sec=0, tm_wday=5, tm_yday=35, tm_isdst=0)
>>> dt.toordinal()
736364
>>> dt.weekday()
5
>>> dt.isocalendar()
(2017, 5, 6)
>>> dt.isoformat()
'2017-02-04T20:57:00.621378'
>>> dt.isoformat(sep='/')
'2017-02-04/20:57:00.621378'
>>> dt.isoformat(sep=' ')
'2017-02-04 20:57:00.621378'
>>> dt.ctime()
'Sat Feb 4 20:57:00 2017'
>>> dt.strftime('%Y%m%d %H:%M:%S.%f')
'20170204 20:57:00.621378'

总结


Python的datetime时间、日期处理模块详解_datetime_10


好博客就要一起分享哦!分享海报

此处可发布评论

评论(0展开评论

暂无评论,快来写一下吧

展开评论

您可能感兴趣的博客

客服QQ 1913284695