文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Python 时间操作datetime详情

2024-04-02 19:55

关注

复习回顾:

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

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

1. datetime 模块概述

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

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

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

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内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯