Pyhon——datetime、calendar模块

11 篇文章 1 订阅
订阅专栏

继time模块之后,又迎来了datetime模块。它的功能也十分强大。话不多说,进入正题。

首先我们需要知道,datetime模块中定义了两个常量:date.MINYEAR = 1和date.MAXYEAR = 9999,他们表示datetime模块支持的最小年份和最大年份。

datetime模块中包含了许多跟日期时间有关的对象,我们就根据这样对象来进一步介绍datetime模块中的函数。

💦 date对象

date翻译过来就是日期,date对象自然也就表示在日历中的一个日期(年、月、日)。同时,date对象的构造函数需要传入三个参数:year、month、day。但是要注意哦❗️:这三个参数都不能超过有效日期的范围,不然程序会抛出异常。例如👇:

import datetime

a = datetime.date(2022,8,31)
print(a)
#2022-08-31

因为date是一个类的实例化,所以它也可以调用方法。

☁️ today()

它返回的是当天的日期,例如👇:

import datetime

a = datetime.date.today()
print(a)
#2022-08-31

☁️ weekday()

它返回某天是星期几,所以它需要传递一个日期参数。从0开始,0是星期天,例如👇:

import datetime

a = datetime.date.today()
b = datetime.date.weekday(a)
print(a)
print(b)
#2022-08-31
#2

☁️ isoweekday()

它和weekday方法相似,不过星期一就是1,星期天就是7。例如👇:

import datetime

a = datetime.date(2022,9,4)
b = datetime.date.isoweekday(a)
print(b)
#7

☁️ isoformat()

返回日期为ISO格式,即“YYYY-MM-DD”的字符串。我们在前面直接打印date对象调用的就是isoformat方法,例如👇:

import datetime

a = datetime.date(2022,8,31)
print(a)
print(a.isoformat())
#2022-08-31
#2022-08-31

☁️ strftime()

它可以格式化输出日期,也就是要用来格式化符号,例如👇:

import datetime

a = datetime.date(2022,8,31)
print(a.strftime("%Y-%m-%d"))
print(a.strftime("%y-%b-%d"))
#2022-08-31
#22-Aug-31

如果不了解有关日期和时间的格式化符号请看这里 → \rightarrow 格式化符号

date对象就到这样,接下来是time对象。

💦 time对象

time对象有两个常量min和max,如下👇:

import datetime
print(datetime.time.min)
print(datetime.time.max)
#00:00:00
#23:59:59.999999

time对象的构造有三个参数,分别对应时、分、秒。

☁️ isoformat()

它返回时间为ISO格式,即“HH:MM:SS”的字符串,例如👇:

import datetime
a = datetime.time(11,50,23)
print(a.isoformat())
#11:50:23

☁️ strftime()

格式化输入时间,例如👇:

import datetime
a = datetime.time(11,50,23)
print(a.strftime("%H:%M:%S"))
print(a.strftime("%p %I:%M:%S:%f"))
#11:50:23
#AM 11:50:23:000000

💦 datetime对象

datetime一看就是date和time的结合体,所以它也就包括date与time的所有信息。例如👇:

import datetime
a = datetime.datetime(2022,8,31,11,56,12)
b = datetime.datetime(2022,8,31)
print(a)
print(b)
#2022-08-31 11:56:12
#2022-08-31 00:00:00

这里需要注意哦❗️:年月日的参数是必须要传递的,其余参数可选。

☁️ today()

返回一个表示当前本地时间的datetime对象,例如👇:

import datetime
a = datetime.datetime.today()
print(a)
#2022-08-31 12:00:55.941013

☁️ now()

它返回一个表示当前本地时间的datetime对象。例如👇:

import datetime
a = datetime.datetime.now()
print(a)
#2022-08-31 18:05:18.041465

☁️ utcnow()

它返回一个当前UTC时间的datetime对象。例如👇:

import datetime
a = datetime.datetime.utcnow()
print(a)
#2022-08-31 10:06:42.436731

☁️ fromtimestamp()

它根据一个时间戳创建一个datetime对象,可选参数tzinfo指定时区信息。例如👇:

import datetime
import time
a = datetime.datetime.fromtimestamp(time.time() - 86400)
print(a)
#2022-08-30 18:11:36.732211

☁️ combine()

它根据date和time对象,创建一个datetime对象。例如👇:

import datetime
a = datetime.date(2022,8,31)
b = datetime.time(18,14,23)
c = (datetime.datetime.combine(a,b))
print(c)
#2022-08-31 18:14:23

☁️ strftime()

它可以格式化输出日期时间,例如👇:

import datetime
a = datetime.date(2022,8,31)
b = datetime.time(18,14,23)
c = (datetime.datetime.combine(a,b))
print(c.strftime("%Y-%m-%d %H:%M:%S"))
print(c.strftime("%y-%m-%d %a %I:%M:%S"))
#2022-08-31 18:14:23
#22-08-31 Wed 06:14:23

💦 timedelta对象

它表示的是两个日期或时间的差,属性包含:日期、秒、微秒、毫秒、分钟、小时和星期。所有的属性都是可选的并且默认值是0。例如👇:

import datetime
a = datetime.datetime.now()
b = a + datetime.timedelta(hours = 9)
print(a)
print(b)
#2022-08-31 18:25:02.454888
#2022-09-01 03:25:02.454888

💦 tzinfo对象

tzinfo是一个时区对象的抽象类,datetime和time对象使用它来提供可自定义的时间调整概念。

tzinfo类不能直接使用,但是可以使用datetime.timezone生成。datetime.timezone.utc实现了UTC时区的tzinfo实例,例如👇:

import datetime
a = datetime.datetime.now(datetime.timezone.utc)
b = datetime.datetime.utcnow()
print(a)
print(b)
#2022-08-31 10:36:42.765091+00:00
#2022-08-31 10:36:42.765091

datetime.timezone是tzinfo的子类,所以也可以使用它来实现想要的时区信息。构造datetime.timezone对象时只需传入和UTC时间相隔的timedelta对象即可,例如👇:

import datetime

china_timezone = datetime.timezone(datetime.timedelta(hours = 8))
utc_timezone = datetime.timezone(datetime.timedelta(hours = 0))

china_time = datetime.datetime.now(china_timezone)
utc_time = datetime.datetime.now(utc_timezone)

print(china_time)
print(utc_time)
#2022-08-31 18:40:53.379978+08:00
#2022-08-31 10:40:53.379978+00:00

实际上,datetime.timezone.utc的本质就是datetime.timezone(datetime.timedelta(0))。

前面5个都是datetime模块中的对象,接下来是calendar模块,也就是日历。

❄️ calendar模块

该模块主要用于日历的输出,但应用的场景不是很多。

☁️ isleap()

该方法用于判断是否为闰年,是就返回True,不是返回False。例如👇:

import calendar
print(calendar.isleap(2022))
print(calendar.isleap(2024))
#False
#True

☁️ leapdays()

它返回两个年份之间闰年的总数,两个参数为两个两个年份,例如👇:

import calendar
print(calendar.leapdays(2018,2022))
print(calendar.leapdays(2000,2022))
#1
#6

☁️ month()

该方法有4个参数:theyear、themonth、w = 0、l = 0。它返回一个多行字符串格式的日历,两行标题,一周一行。每日的间隔宽度为w,每行的长度为7×w+6,l是每星期的行数。例如👇:

import calendar
print(calendar.month(2022,9))
#   September 2022
#Mo Tu We Th Fr Sa Su
#          1  2  3  4
# 5  6  7  8  9 10 11
#12 13 14 15 16 17 18
#19 20 21 22 23 24 25
#26 27 28 29 30
import calendar
print(calendar.month(2022,9,w = 3))
#       September 2022
#Mon Tue Wed Thu Fri Sat Sun
#              1   2   3   4
#  5   6   7   8   9  10  11
# 12  13  14  15  16  17  18
# 19  20  21  22  23  24  25
# 26  27  28  29  30
import calendar
print(calendar.month(2022,9,l = 2))
#   September 2022

#Mo Tu We Th Fr Sa Su

#          1  2  3  4

# 5  6  7  8  9 10 11

#12 13 14 15 16 17 18

#19 20 21 22 23 24 25

#26 27 28 29 30

☁️ monthcalendar()

该方法返回一个整数的单层嵌套列表,每个子列表装载一个星期。该月之外的日期都为0,该月之内的日期设为该日的日期,从1开始,例如👇:

import calendar
print(calendar.monthcalendar(2022,9))
#[[0, 0, 0, 1, 2, 3, 4], [5, 6, 7, 8, 9, 10, 11], [12, 13, 14, 15, 16, 17, 18], [19, 20, 21, 22, 23, 24, 25], [26, 27, 28, 29, 30, 0, 0]]

☁️ monthrange()

该方法返回两个整数组成的元组,第一个整数表示该月的第一天是星期几,第二个整数表示该月的天数,例如👇:

import calendar
print(calendar.monthrange(2022,9))
#(3, 30)

☁️ weekday()

该方法返回给定日期是星期几,0是星期天,例如👇:

import calendar
print(calendar.weekday(2022,9,1))
#3

☁️ calendar()

该方法返回一个由字符串组成的年历,三个月一行,间隔距离用参数c表示,默认值为6.每个宽度间隔为w,默认值为2。每行长度为21×w+18+2×c。 l l l参数是每星期的行数,默认值为1。例如👇:

import calendar
print(calendar.calendar(2022))

在这里插入图片描述
在这里插入图片描述
datetime、calendar模块就学习到这里~~

pyhon 3.10.10 安装包 win 64位
04-16
pyhon 3.10.10 安装包 win 64位
java dayofweek_java – 以字符串形式获取DateTime dayOfWeek / dayOfMonth
weixin_35960357的博客
02-16 477
如何将星期或月份作为字符串获取?无需执行以下操作:DateTime now = DateTime.now();String dayOfWeek = null;switch(now.getDayOfWeek()) {case DateTimeConstants.MONDAY:dayOfWeek = "Monday";break;case DateTimeConstants.TUESDAY:dayOf...
python:tzinfo 对象
点点关注不迷路
03-03 651
python:tzinfo 对象
Python拾遗】Python 日期和时间模块总结 time、datetimecalendar
随波一落叶
06-13 1201
Python的日期和时间模块常用的有三个,分别是:time、Datatime、Calendar,下面分别来介绍一下。 一、time模块 time模块提供了一些用于管理时间和日期的C库函数,由于它绑定到底层C实现,因此一些细节会基于具体的平台。 1、获取当前时间 a)time() time模块的核心函数time(),它返回纪元开始的秒数,返回值为浮点数,具体精度依赖于平台。 >>> import time >>> time.time() 1460599046.
datetimeCalendar
tInG____的博客
10-22 172
学习pythondatetime库和calendar
datetimecalendar库的使用
DS_zxm123的博客
04-08 737
datetimecalendar都是用于时间的处理,只不过calendar主要是用于日期方面的处理,而datetime相对于time库又更高级,为我们提供了很多便利的函数,下面就让我们来了解一下这两个库吧。 1、datetime datetime库提供了一系列由简单到复杂的时间处理方法,它可以从系统中获得时间,并以用户选择的格式输出,datetime库以格林威治时间为基础,每天由3600*24秒...
OpenCV4 DNN模块 Python APIs
01-06
OpenCV4.X – DNN模块 Python APIs 参考:https://blog.csdn.net/zziahgf/article/details/88900855 OpenCV 4.X 版本集成了很多直接利用 DNN 模块Python API 接口. 安装: sudo pip install opencv-python 1 使用...
pyhon网络数据采集
07-22
资源名称:pyhon网络数据采集资源截图: 资源太大,传百度网盘了,链接在附件中,有需要的同学自取。
python定时器简单例子.rar_pyhon
07-14
python定时器简单实用的例子,可同时执行多个任务
pyhon简明教程
12-28
pyhon简明教程,初学python的入门书籍,建议迅速过一篇,然后阅读其他python书籍,比如《python核心编程》等。主要还是通过自己动手多练习。
time,datetime,calendar模块使用方法详解
weixin_49159287的博客
08-23 1217
Python 有很多种方式处理日期和时间,常见的时间处理的模块datetime、time、calendar。 能融汇贯通的了解和使用这三个模块,才能轻而易举地用python处理时间。 datetime(日期时间)模块主要是用来表示日期的,就是我们常说的年月日时分秒, calendar(日历)模块主要是用来表示年月日,是星期几之类的信息. time(时间)模块主要侧重点在时分秒. datetime对象就是date对象和time对象的组合。 # 导入datetime模块三个核心的类 from dateti
java 日期时间工具_JAVA工具例大全--DateTime 日期时间 操作工具类
weixin_42503487的博客
03-05 1197
引用hutool,在项目maven的pom.xml的dependencies中加入以下内容:cn.hutoolhutool-all5.4.3日期时间对象-DateTime由来考虑工具类的局限性,在某些情况下使用并不简便,于是DateTime类诞生。DateTime对象充分吸取Joda-Time库的优点,并提供更多的便捷方法,这样我们在开发时不必再单独导入Joda-Time库便可以享受简单快速的日期...
Python时间与日期操作(datetime、time、calendar
SHUYANSAMA的博客
04-06 1万+
转载自:Python时间与日期操作(datetime、time、calendar) - 阳光宝贝-沐沐 - 博客园 相关模块 模块 说明 time time是一个仅包含与日期和时间相关的函数和常量的模块,在本模块中定义了C/C++编写的几个类。例如,struct_time类 datetime datetime是一个使用面向对象编程设计的模块,可以在Python中使用日期和时间。它定义了几个表示日期和时间的类 calendar 日历是一个提供函数的模块,以及与Ca.
Python常用内置模块之时间日期模块(time、datetimecalendar
TaoismHuang的博客
06-18 697
python程序能用很多方式处理日期和时间,转换日期格式是一种常见的功能。python提供了一个time和calendar模块可以用于格式化日期和时间,这里将会讲到time模块datetime模块calendar模块 名词解释 时间戳 自从1970年1月1日午夜(历元)经过了多长时间来表示,时间间隔是以秒为单位的浮点小数 UTC 格林尼治时间,世界标准时间,在中国为UTC+8 DST 夏令时是...
Python案例】(二)时间模块:time、datetimecalendar
weixin_49340599的博客
04-15 1083
文章目录一、Python中的时间表达1. 时间模块的使用场景2. 表达时间的方式3.格式化日期二、time模块2.1 time模块的常用方法2.2 使用流程图三、datetime模块3.1 datetime模块中的类:3.2 常用方法四、calendar模块1.查询日历1.1 日历文本1.2 打印日历2.日历的计算2.1 闰年相关细算2.2 其他 一、Python中的时间表达 1. 时间模块的使用场景 对时间的处理可以归为以下3钟: 时间的显示:在屏幕显示,记录日志等”2022-04-07“ 时间的转换:比
Java中的时间和日期(下)
Eateeer 的笔记屋
07-11 2万+
转载请注明出处:Java中的时间和日期(下)在上篇文章Java中的时间和日期(上)里面,简单介绍了Java中的Date类,Calendar类以及用于格式化的SimpleDateFormater类。使用这些的时候我们会明显地感受到其中的不便之处,比如,Calendar类的月份是从0开始计数的;日期格式输出不够友好,很多情况下都需要使用SimpleDateFormater类来格式化;一些简单得日期计算也
Calendar中 DAY_OF_MONTH,  DAY_OF_YEAR,  DATE 的区别
热门推荐
fengwei_liao的博客
06-06 2万+
Calendar中DAY_OF_MONTH, DAY_OF_YEAR, DATE 的区别 caltest.add(Calendar.DATE,1); caltest.add(Calendar.DAY_OF_MONTH,1); caltest.add(Calendar.DAY_OF_YEAR,1); 如果只是的add方法执行,结果都一样,因为都是将日期...
DateTime相关方法
qq_36594703的博客
03-27 678
1.获取上个月的最后一天 public static DateTime getLastDayOfPreviousMonth(DateTime datetime) { DateTime firstDayOfMonth = datetime.withDayOfMonth(1); return minusDays(firstDayOfMonth, 1); } 2.获取上个月最后一天 ...
pyhon的image模块怎么获取图形的尺寸?给出示例代码
最新发布
09-20
使用Python的Image模块可以获取图像尺寸,示例代码如下:from PIL import Image im = Image.open('path_to_image') width, height = im.size print("图片宽度和高度分别是{}像素和{}像素".format(width,height)) #...

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
写文章

热门文章

  • 数据结构与算法之Python实现——栈 9333
  • Python机器学习:一元回归 8279
  • 数据结构 第四章 广义表 5891
  • 数据结构 第六章 图——图的遍历 5372
  • 4.数据库安全性 5062

分类专栏

  • 算法储备 7篇
  • Web开发学习笔记 1篇
  • 数据库基础 11篇
  • python学习笔记 11篇
  • 前端项目学习 4篇
  • python实现数据结构与算法笔记 5篇
  • 爬虫
  • 机器学习笔记 7篇
  • 概率论与数理统计学习 11篇
  • 算法刷题(C语言) 6篇
  • 数据结构 24篇
  • 操作系统巩固习题
  • 操作系统原理 4篇
  • c语言 9篇

最新评论

  • Pycharm使用阿里云SDK发送短信(超详细+避坑!!)

    我还能毕业吗: 谢谢谢谢,写的太好了,回答的也太好了,非常棒!!!!

  • SQL Server基础操作

    xsimah: 博主总结的很到位,我也总结了下:https://kngines.blog.csdn.net/article/details/139014717

  • Pycharm使用阿里云SDK发送短信(超详细+避坑!!)

    浮沉丿: 不需要改代码里的acess_key_id和secrest,代码原封不动,在windows系统里添加环境变量即可

  • Pycharm使用阿里云SDK发送短信(超详细+避坑!!)

    qq_38166865: 为什么我的KEY_ID不管是大号还是小号的复制进去都无效啊。。python运行显示KEYERROY

  • Python itertools库函数大全

    CSDN-Ada助手: 不知道 Python入门 技能树是否可以帮到你:https://edu.csdn.net/skill/python?utm_source=AI_act_python

您愿意向朋友推荐“博客详情页”吗?

  • 强烈不推荐
  • 不推荐
  • 一般般
  • 推荐
  • 强烈推荐
提交

最新文章

  • 滑动窗口用法
  • 单调栈用法
  • 并查集python实现及题目练习
2024年8篇
2023年16篇
2022年80篇

目录

目录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值

聚圣源龙年男宝宝起名生鲜蔬菜公司起名源远流长的意思7画字的起名字用金融公司起名字大全集起姓名大全免费名字上海白领公寓本港台直播公司起名的字起名字叫子鱼好吗被各种工具调教花蒂日剧美丽的他原著小说庶务二课刘一水扮演者周易起名风水网体育行业公司怎么起名起名字鲁姓个体工商户营业执照起名大全企业起名三个字精选《风声》office365激活袁隆平学历注册食品公司起什么名字经商起名大全八卦起什么名字好听男宝宝起名字零食起名重庆电信在劫难逃下载色吧网淀粉肠小王子日销售额涨超10倍罗斯否认插足凯特王妃婚姻让美丽中国“从细节出发”清明节放假3天调休1天男孩疑遭霸凌 家长讨说法被踢出群国产伟哥去年销售近13亿网友建议重庆地铁不准乘客携带菜筐雅江山火三名扑火人员牺牲系谣言代拍被何赛飞拿着魔杖追着打月嫂回应掌掴婴儿是在赶虫子山西高速一大巴发生事故 已致13死高中生被打伤下体休学 邯郸通报李梦为奥运任务婉拒WNBA邀请19岁小伙救下5人后溺亡 多方发声王树国3次鞠躬告别西交大师生单亲妈妈陷入热恋 14岁儿子报警315晚会后胖东来又人满为患了倪萍分享减重40斤方法王楚钦登顶三项第一今日春分两大学生合买彩票中奖一人不认账张家界的山上“长”满了韩国人?周杰伦一审败诉网易房客欠租失踪 房东直发愁男子持台球杆殴打2名女店员被抓男子被猫抓伤后确诊“猫抓病”“重生之我在北大当嫡校长”槽头肉企业被曝光前生意红火男孩8年未见母亲被告知被遗忘恒大被罚41.75亿到底怎么缴网友洛杉矶偶遇贾玲杨倩无缘巴黎奥运张立群任西安交通大学校长黑马情侣提车了西双版纳热带植物园回应蜉蝣大爆发妈妈回应孩子在校撞护栏坠楼考生莫言也上北大硕士复试名单了韩国首次吊销离岗医生执照奥巴马现身唐宁街 黑色着装引猜测沈阳一轿车冲入人行道致3死2伤阿根廷将发行1万与2万面值的纸币外国人感慨凌晨的中国很安全男子被流浪猫绊倒 投喂者赔24万手机成瘾是影响睡眠质量重要因素春分“立蛋”成功率更高?胖东来员工每周单休无小长假“开封王婆”爆火:促成四五十对专家建议不必谈骨泥色变浙江一高校内汽车冲撞行人 多人受伤许家印被限制高消费

聚圣源 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化