文章详情

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

请输入下面的图形验证码

提交验证

短信预约提醒成功

Python时间模块之datetime模块

2023-09-12 09:53

关注

目录

简介

函数介绍及运用

date:日期类

1.获取当前时间

 2.日期对象的属性

3.date类中时间和时间戳的转换:

4.修改日期使用replace方法 

time:时间类

 time类操作

datetime:日期时间类

timedelta:时间间隔,即两个时间点之间的时间长度


在项目开发中做功能经常会用到关于时间的操作。比如会员过期的定时任务,一些代码的延迟执行。在python中比较常用的三个时间模块分别是:timecalendar、datetime模块。今天介绍的是datetime模块。

在python中表示时间的格式有三种:时间戳、元组、格式化时间。与time模块类似,datetime模块也能够将datetime类型转换成这三种类型。

date:日期类

常用属性:year/month/day

1.获取当前时间

import datetimetoday = datetime.datetime.today()today1 = datetime.datetime.now()

 结果:

 2.日期对象的属性

import datetime# 这两种都可以today = datetime.datetime.today()# today1 = datetime.datetime.now()print("当前日期:", today)  # 当前日期print("当前日期(字符串):", today.ctime())  # 返回日期的字符串print("时间元组信息:", today.timetuple())  # 当前日期的时间元组信息print("年:", today.year)  # 返回today对象的年份print("月:", today.month)  # 返回today对象的月份print("日:", today.day)  # 返回today对象的日print("星期:", today.weekday())  # 0代表星期一,类推print("公历序数:", today.toordinal())  # 返回公历日期的序数print("年/周数/星期:", today.isocalendar())  # 返回一个元组:一年中的第几周,星期几

 结果:

3.date类中时间和时间戳的转换:

(1)toordinal方法返回的公历序数转化为日期

import datetimetoday = datetime.datetime.now()# 此方法的返回类型是一个数字,它是该日期在公历中的序数。num = today.toordinal()print(num)print(today.fromordinal(num))

结果:

(2)time模块时间戳转化日期

import datetimeimport timenowtime = time.time()print(nowtime)nowdate = datetime.date.fromtimestamp(nowtime)print(nowdate)

结果:

(3)格式化时间,格式参照time模块中的strftime方法

import datetimetoday = datetime.date.today()print(today)print(today.strftime("%Y.%m.%d"))print(today.strftime("%Y:%m:%d"))print(today.strftime("%Y.%m.%d %H:%M:%S"))

结果:

4.修改日期使用replace方法 

import datetime# 当前日期date1 = datetime.date.today()print(date1)# 指定日期date2 = datetime.date(2022, 10, 7)print(date2)# 不带参数修改日期date3 = date2.replace(2022, 10, 8)print(date3)# 带参数修改日期date4 = date2.replace(month=12, day=9)print(date4)

 结果:

time:时间类

常用属性:hour/minute/second/microsecond

time类生成time对象,包含hour、minute、second、microsecond属性

 time类操作

import datetime# time对象print(datetime.time)# 格式化timetime1 = datetime.time(18, 30, 59, 59)print(time1)print(time1.hour)print(time1.minute)print(time1.second)print(time1.microsecond)  # 微秒

结果:

datetime:日期时间类

datetime类包含date类和time类的全部信息

import datetimeprint(datetime.datetime.today())print(datetime.datetime.now())print(datetime.datetime.utcnow())  # 返回当前UTC日期和时间的datetime对象print(datetime.datetime.fromtimestamp(1670582201))  # 时间戳的datetime对象print(datetime.datetime.fromordinal(738498))print(datetime.datetime.strptime("2020-12-25", "%Y-%m-%d"))

结果:

timedelta:时间间隔,即两个时间点之间的时间长度

timedelta对象表示的是一个时间段,即两个日期date或者日期时间datetime之间的差;支持参数:weeks、days、hours、minutes、seconds、milliseconds、microseconds

timedelta 操作

import datetimeday = datetime.date.today()# 当前日期print(day)# 增加7天后日期print(day+datetime.timedelta(days=7))# 时间操作now = datetime.datetime.now()# 当前日期时间print(now)# 增加8小时print(now+datetime.timedelta(hours=8))# 增加30分钟print(now+datetime.timedelta(minutes=30))# 增加30秒钟print(now+datetime.timedelta(seconds=30))# 减去一星期print(now-datetime.timedelta(weeks=1))

结果:

本文介绍了datetime模块的使用,不会使用时间或者对时间操作陌生的小伙伴,可以参考时间模块(time,calendar,datetime)博客,来实现与其他三种时间格式的转换,与日期的操作。 

来源地址:https://blog.csdn.net/json_ligege/article/details/128284233

阅读原文内容投诉

免责声明:

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

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

软考中级精品资料免费领

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

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

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

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

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

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

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