Python 时间操作datetime详情

 更新时间:2021年11月30日 11:39:58   作者:盆友圈的小可爱  
这篇文章主要介绍了 Python 时间操作datetime,datetime 模块提供处理时间和日期的多种类,简单方便,下面文章将详细介绍其内容,需要的朋友可以参考一下

复习回顾:

Python 在对时间操作内置库提供了time模块和datetime模块。

  • time模块对结构化时间与时间戳和字符串时间进行互相转换相关方法学习
  • datetime 模块提供处理时间和日期的多种类,简单方便

python 还提供通用日历相关方法的calendar模块,时区信息zoneinfo模块,以及第三方库arrowdateutil模块对时间处理

1. datetime 模块概述

datetime 模块不仅支持时间日期数学运算,还提供高效输出格式化和操作的属性相关方法

datetime 模块根据包含时区信息将日期和时间分为两种感知型对象和简单型对象

  • 感知型时间对象:充分使用应用性算,以及当地实际情况来精确定位时间点,通常用来表示没有解释空间的固定时间点
  • 简单型时间对象:不会包含当地的信息,一切取决于具体程序所计算出的时间点,忽略现实因素,通常可以代表UTC世界标准时间

datetime 提供许多类,能进一步方便与我们取出感知型时间对象的信息。

  • date 类型的对象都是简单型的
  • timedatetime类型的对象可以是感知型或者简单型
  • timedelta 对象既不是感知型对象也不是简单型对象

2. datetime 组成部分

datetime 模块对比time不同的是,它主要提供操作日期和时间的类。

通过查看 datetime 模块文件主要提供包括处理时间日期的还有时区相关的类共6类

类名称 描述
datetime.date 用于表示日期,常用的属性有:year, month和day
datetime.time 用于表示时间,常用属性有:hour, minute, second, microsecond
datetime.datetime 用于表示日期时间
datetime.timedelta 用于表示两个date、time、datetime实例之间的时间间隔,最小单位可达到微秒
datetime.tzinfo 时区相关信息对象的抽象基类。它们由datetime和time类使用,以提供自定义时间的而调整。
datetime.timezone Python 3.2中新增的功能,实现tzinfo抽象基类的类,表示与UTC的固定偏移量

datetime 模块相关类关系图:

datetime 模块中类的对象都是不可变类型

datetime这两个类是我们日常使用最多的

3. datetime 常量

在datetime.pyi文件中,我们可知道detetime模块定义了两个常量dat

常量名称 描述
datetime.MINYEAR datetime.date或datetime.datetime对象所允许的年份的最小值,值为1
datetime.MAXYEAR datetime.date或datetime.datetime对象所允许的年份的最大值,只为9999

4. datetime 常用方法

datetime 模块对比time模块提供更多的操作时间日期的操作,以下我们列出常用的方法

方法 作用
datetime.datetime.timestamp() 将datetime对象转换输出成时间戳的形式
datetime.datetime.now() 格式化输出当前系统时间
datetime.datetime.timedelta([hours,days]) 设置某个属性的偏移量
datetime.datetime.strptime(date_str,format) 将时间字符串转换为datetime对象
datetime.date.fromtimestamp(timestamp) 将时间戳格式化输出为日期
datetime.date.today() 返回当地本地日期
datetime.time.strftime(fromat) 返回当地时间格式化输出
datetime.time.dst() 返回当地所在的时区,tzinfo为none,则返回none
datetime.tzinfo.utcoffset(dt) 设置时区差,以东为正值,返回timedelta对象
datetime.tzinfo.dst(dt) 将夏令时调整返回一个timedelta对象

5、实操

我们对datetime模块常用方法学习,我们来实现输入日期判断是昨天或者今天的日期即为Ture,否则为false

def check_current_date(sw_date):

    cur_date_list =  time.strftime("%Y/%m/%d", time.localtime()) .split('/')

    today = datetime.datetime.now()

    offset = datetime.timedelta(days=-1)

    yes_data = today+offset

    yes_data_list = yes_data.strftime("%Y/%m/%d").split('/')

    data_list = cur_date_list + yes_data_list

    print("data_list",data_list)

    seps = ['/', '-', '_']

    for sep in seps:

        date_parts= sw_date.split(sep)

        print("cur_date_list = {}, arg sw_date = {}".format(data_list, sw_date))

        if len(date_parts) == 3:

            for data in date_parts:

                if data not in data_list:

                    return False

            return True

    return False

我们来进行测试一下结果:

print("当前日期:",datetime.datetime.now())

print("测试前一天:",check_current_date("2021-10-29"))

print("测试当前日期:",check_current_date("2021/10/30"))

6、总结

本期,我们对datetime模块进行基本的认识,知道datetime模块包含6个类,且对常用方法进行学习和实操。

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

相关文章

  • python开发之anaconda以及win7下安装gensim的方法

    python开发之anaconda以及win7下安装gensim的方法

    这篇文章主要介绍了python开发之anaconda以及win7下安装gensim的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-07-07
  • python分析网页上所有超链接的方法

    python分析网页上所有超链接的方法

    这篇文章主要介绍了python分析网页上所有超链接的方法,涉及Python使用urllib模块操作页面超链接的技巧,需要的朋友可以参考下
    2015-05-05
  • Android分包MultiDex策略详解

    Android分包MultiDex策略详解

    这篇文章主要介绍了Android分包MultiDex策略详解,具有一定参考价值,需要的朋友可以了解下。
    2017-10-10
  • pandas.DataFrame.from_dict直接从字典构建DataFrame的方法

    pandas.DataFrame.from_dict直接从字典构建DataFrame的方法

    本文主要介绍了pandas.DataFrame.from_dict直接从字典构建DataFrame的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-06-06
  • python继承threading.Thread实现有返回值的子类实例

    python继承threading.Thread实现有返回值的子类实例

    这篇文章主要介绍了python继承threading.Thread实现有返回值的子类实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-05-05
  • Django1.7+python 2.78+pycharm配置mysql数据库教程

    Django1.7+python 2.78+pycharm配置mysql数据库教程

    原本感觉在Django1.7+python 2.78+pycharm环境下配置mysql数据库是件很容易的事情,结果具体操作的时候才发现,问题还是挺多的,这里记录一下最终的配置结果,给需要的小伙伴参考下吧
    2014-11-11
  • 一文带你掌握Python中enumerate函数和for循环的对比

    一文带你掌握Python中enumerate函数和for循环的对比

    在Python编程中,循环是一项常见的任务,而for循环是最常见的一种,然而,Python提供了enumerate函数,它允许在迭代过程中访问元素的同时获得它们的索引,下面我们就来学习一下二者的区别吧
    2023-11-11
  • python实现json转yolo格式

    python实现json转yolo格式

    在目标检测数据集处理中,我们经常会遇到标签之间不同格式的转化,本文主要介绍了python实现json转yolo格式,具有一定的参考价值,感兴趣的可以了解一下
    2023-12-12
  • Django REST framework 视图和路由详解

    Django REST framework 视图和路由详解

    这篇文章主要介绍了Django REST framework 视图和路由详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-07-07
  • Numpy 中的矩阵求逆实例

    Numpy 中的矩阵求逆实例

    今天小编就为大家分享一篇Numpy 中的矩阵求逆实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-08-08

最新评论