小朋友们好,大朋友们好!

我是猫妹,一名爱上Python编程的小学生。

欢迎和猫妹一起,趣味学Python。

今日主题

你见过倒计时吗?

比如距离2024年春节还有多少天?

比如距离高考还有多少天?

今天咱们学习下Python的datetime库,用它可以很简单地计算倒计时哦!

datetime是Python自带的,无需安装,datetime包括处理日期的date对象、处理时间的time对象、计算日期差的timedelta对象等。

datatime模块是在time模块的基础之上做了封装,提供了更多更好用的类供我们使用,常用的有date、datetime、time、timedelta、tzinfo。

但是为了更灵活地处理时间,最好是将time模块和datetime模块中的精髓学习到。

① date类:主要用于处理年、月、日;

② datetime类:date类和time类的综合使用,可以处理年、月、日、时、分、秒;

③ time类:主要用于处理时、分、秒;

④ timedelta类:主要用于做时间加减的;

⑤ tzinfo类:时区类;

注意:tzinfo用得不多,如有需要,可以自行学习。

datetime之date

表示日期的类

date(year, month, day)

构造方法

year取值范围datetime.MINYEAR =1~datetime.MAXYEAR=9999

month取值范围1~12

day取值范围1~本月最后一天

date.today()

返回一个表示当前本地日期的date对象。

date.fromtimestamp(timestamp)

根据给定的时间戮,返回一个date对象。

date.year、date.month、date.day

属性:年、月、日;

date.replace(year, month, day)

生成一个新的日期对象,用参数指定的年,月,日代替原有对象中的属性。(原有对象仍保持不变)

date.timetuple()

返回日期对应的time.struct_time对象即一个元组;

date.toordinal()

返回日期对应的Gregorian Calendar日期;

date.weekday()

返回weekday,如果是星期一,返回0;如果是星期2,返回1,以此类推;

data.isoweekday()

返回weekday,如果是星期一,返回1;如果是星期2,返回2,以此类推;

date.isocalendar()

返回格式如(year,month,day)的元组;

date.isoformat()

返回格式如'YYYY-MM-DD’的字符串;

date.strftime(fmt)

自定义格式化字符串

import datetime
print(type(datetime))
print(type(datetime.date))d1=datetime.date.today()
print(d1)
print(datetime.date.weekday(d1))
print(type(d1))d2=datetime.date(2024,1,1)
print(d2)
<class 'module'>
<class 'type'>
2023-05-06
5
<class 'datetime.date'>
2024-01-01

datetime之datetime

表示日期时间的类

datetime(year、month、day、hour、minute、second、microsecond、tzinfo)

构造方法

datetime.today()

返回一个表示当前本地时间的datetime对象;

datetime.now([tz])

返回一个表示当前本地时间的datetime对象,如果提供了参数tz,则获取tz参数所指时区的本地时间;

datetime.utcnow()

返回一个当前utc时间的datetime对象;

datetime.fromtimestamp(timestamp[, tz])

根据时间戮,创建一个datetime对象,参数tz指定时区信息;

datetime.utcfromtimestamp(timestamp)

根据时间戮,创建一个datetime对象;

datetime.combine(date, time)

根据date和time,创建一个datetime对象;

datetime.strptime(date_string, format)

将格式字符串转换为datetime对象;

datetime.date()

获取date对象;

datetime.time()

获取time对象;

datetime. replace ([ year[ , month[ , day[ , hour[ , minute[ , second[ , microsecond[ , tzinfo] ] ] ] ] ] ] ])

生成一个新的日期时间对象,用参数指定的:年、月、日、时、分、秒、毫秒、时区代替原有对象中的属性

datetime. timetuple ()

返回日期对应的datetime.struct_time对象即一个元组;

datetime. utctimetuple ()

datetime. toordinal ():返回日期对应的Gregorian Calendar日期时间

datetime. weekday ()

返回weekday,星期一返回0;星期2返回1,以此类推

datetime. isocalendar ()

返回格式如(year、month、day、hour、minute、second、microsecond、tzinfo)的元组

datetime. isoformat ([ sep] ):

datetime. ctime ():返回一个日期时间的C格式字符串,等效于time.ctime(time.mktime(dt.timetuple()));

datetime. strftime (format)

返回自定义格式化字符串。

import datetime
print(type(datetime))
print(type(datetime.datetime))d1=datetime.datetime.today()
print(d1)d2=datetime.datetime(2024,1,1,0,0,0,0)
print(d2)
<class 'module'>
<class 'type'>
2023-05-06 23:19:20.584069
2024-01-01 00:00:00

datetime之time

表示时间的类

time(hour、minute、second、microsecond、tzinfo)

构造方法

hour、minute、second、microsecond、tzinfo:时、分、秒、微秒、时区信息;

time.replace([ hour[ , minute[ , second[ , microsecond[ , tzinfo] ] ] ] ] )

创建一个新的时间对象,用参数指定的时、分、秒、微秒代替原有对象中的属性(原有对象仍保持不变);

time.isoformat()

返回型如"HH:MM:SS"格式的字符串表示;

time.strftime(fmt)

返回自定义格式化字符串。

datetime之timedelta

timedalte是datetime中的一个对象,该对象表示两个时间的差值。

timedelta对象是计算任意两个date datetime time对象之间时间差的对象。

创建其函数如下:

timedelta(day=0,seconds=0,microseconds=0,milliseconds=0,minutes=0,hours=0,weeks=0)

这里的参数为经过时间的日、秒、微妙、毫秒、分、时、周。

所有参数可以省略,默认值是0。

正数、负数、浮点数都可以参与运算。

timedelta.min:负数时间差,相当于timedelta(-999999999)。

timedelta.max:正数时间差,相当于timedelta(days=999999999, hours=23, minutes=59, seconds=59, microseconds=999999)。

timedelta.resolution:两个时间的最小差值相当于timedelta(microseconds=1)。

计算日期加减指定天数后的日期

from datetime import datetime, timedeltacurrent_datetime = datetime.now()# future dates
one_year_future_date = current_datetime + timedelta(days=365)print('Current Date:', current_datetime)
print('One year from now Date:', one_year_future_date)# past dates
three_days_before_date = current_datetime - timedelta(days=3)
print('Three days before Date:', three_days_before_date)
Current Date: 2023-05-06 23:07:16.669125
One year from now Date: 2024-05-05 23:07:16.669125
Three days before Date: 2023-05-03 23:07:16.669125

计算两个时间相差多少天

date类中还有两个重要方法:__sub__(*)和__sub__(*)方法,获得二个日期相差多少天;

sub(d1):计算的是d减去d1的天数

rsub(d1):计算的是d1减去d的天数

from datetime import *
d = date.today()
print("今天是",d)d1 = date(2024,1,1)
print("新年元旦是",d1)'''
x = d.__sub__(d1)
print(x)
print(x.days)'''y = d.__rsub__(d1)
print('相差',y.days,'天')
今天是 2023-05-06
新年元旦是 2024-01-01
相差 240 天

好了,我们今天就学到这里吧!

如果遇到什么问题,咱们多多交流,共同解决。

我是猫妹,咱们下次见!

距离2024年春节还有多少天?简单聊聊datetime(38)相关推荐

  1. PHP距离春节还剩多少天,2019年春节倒计时 现在距离2019年春节还有多少天 - 中国万年历...

    摘要 2019年春节倒计时 现在距离2019年春节还有多少天2019年春节是在2月5号,农历大年三十.今天是8月30号,现在距离春节只有158天了!所以还没钱过年的朋友,这个中秋节国庆节假期就不要出去 ...

  2. PHP距离春节还剩多少天,「春节倒计时」2019年春节倒计时 现在距离2019年春节还有多少天 - 56算命网...

    春节倒计时 春节,这个节日,或者说这个假期有无数人盯着,每翻过日历的每一页,我们都距离这个日又进了一天.那么,现在距离2019年春节还有多少天?这个具体的时间不太好算,但是想想中秋节都快到了也不难知道 ...

  3. JAVA程序距离过年还有好多天_距离2019年春节还有多少天 2019年春节时什么时候...

    导语:现在让我们对一下时间,今天是2018年10月16号,现在距离2019年春节还有多少天?估计是3个多月吧,毕竟已经是10月中旬了.具体时间我们还是来2019年春节时什么时候吧!2019年春节2月5 ...

  4. 简单聊聊Python协程

    往期好文推荐 学习Python不需要程基础? 0基础不用怕,从0到1轻松教你入门Python python系统学习流线图,教你一步一步学会python 成为一名做大数据开发的女程序员,并不是二狗进入大 ...

  5. React简单聊聊【面试】

    简单聊聊React 1 React 中 keys 的作⽤是什么? Keys 是 React ⽤于追踪哪些列表中元素被修改. 被添加或者被移除的辅助标识. 在开发过程中,我们需要保证某个元素的 key ...

  6. python 打印皮卡丘_来简单聊聊python的装饰器呀~

    原文链接 来简单聊聊python的装饰器呀~​mp.weixin.qq.com 导语 之前很多小伙伴留言给我说看别人写的代码经常会感觉云里雾里的,完全看不懂,其实那些代码无非就是用了些python语法 ...

  7. 简单聊聊HDFS RBF第二阶段工作近期的一些进展

    前言 前些时间Apache Hadoop 3.1.0版本正式发布,里面新增了很多feature以及一些bug fix,improvement改进.因为笔者本人最近几个月一直跟进,参与的是HDFS RB ...

  8. 红米k30 android10 go,小米10/红米K30至尊纪念版:真有那么香吗?简单聊聊它们的优缺点...

    小米10/红米K30至尊纪念版:真有那么香吗?简单聊聊它们的优缺点 2020-08-12 20:00:45 201点赞 197收藏 199评论 创作立场声明:说说真香机的缺点,帮助大家做更全面的购买决 ...

  9. 简单聊聊程序员的健康问题

    起因 为什么想聊这个话题呢,最近一段时间,加班比较严重,我想应该有很多朋友的状态和我差不多,昨天头晕眼胀的,而且坐久了腰还疼. 所以我们关注一下自己的健康,是很有必要的.但我知道的实在有限,只能列举一 ...

最新文章

  1. UML总结—时序图(Sequence Diagram)和协作图(Collaboration Diagram)
  2. java桥接和装饰_设计模式:桥接模式和装饰模式
  3. 制作bat脚本,抓取Android设备logcat
  4. docker 安装nginx_docker安装nginx搭建简单文件共享服务
  5. 笨鸟学Android开发(1):HelloWorld
  6. 交叉编译及linux简单程序设计,嵌入式实验6交叉编译及Linux简单程序设计实验
  7. why do we use process keys
  8. wemall app商城源码Android之支付宝通知处理类
  9. java long更大_java – 比Long.MAX_VALUE大的长度
  10. 纵坐标是横的还是竖的_木地板怎么铺?木地板是横铺好还是竖铺好!
  11. R语言ETL工程:插入与合并(add/bind)
  12. Linux makefile 教程 非常详细,且易懂
  13. Java理解mian方法
  14. C++写的简易的控制台游戏
  15. 操作BLOB、CLOB、BFILE
  16. 路由交换技术实战七 FR 网络中配置 OSPF( 完成版 )
  17. python爬虫 403 Forbidden 解决方法
  18. 图片去水印接口,模糊图片中水印
  19. 929. 独特的电子邮件地址(简单,字符串)(12.20)
  20. 迈向大牛的重要一步——掌握设计模式

热门文章

  1. 水星UD6S网卡Linux驱动,水星UD6S驱动程序官方版
  2. html入门介绍,html标签入门介绍
  3. 分区格式化大于2 TiB数据盘
  4. Toshiba TC358743XBG HDMI接口转IC
  5. 【网络安全】Nessus漏洞扫描器的安装和使用
  6. YL工作记录 (不断更新) -- 2020.04
  7. LiteOS 内存管理
  8. div与p标签均为块级元素,区别是什么?
  9. python之矩阵相加:提示用户输入矩阵的行数n,再提示用户输入矩阵的列数m,接下来,提示用户输入 2*n*m 个数字(每次输入 一个数字)。输出 C=A+B。
  10. LTE系统信息 --- 系统信息变更