大家好,欢迎来到我们的编程课堂!
在生活和工作中,我们每个人每天都会与时间打交道:
不同的情况会遇到不同的时间问题:具体时间点、时间间隔、周等,我们无时无刻不在与时间碰撞。 本文将详细讲解与时间和日期相关的类,以及它们的方法和属性。
文章比较长,基本涵盖了日常开发中可能遇到的时间/日期问题。 建议保存。
1. 时间戳 1.1 时间戳简介
在正式解释与时间相关的函数之前,我们首先必须有一个概念:时间戳。 本文特指unix时间戳。
时间戳是指在一系列数据中添加时间或日期等标识文本,以保证本地数据更新顺序与远程一致。
unix 时间戳是自 1970 年 1 月 1 日(午夜 UTC/GMT)以来的秒数,不包括闰秒。 1970-01-01往往是当MySQL中的时间为空时,我们将空时间戳转换后得到的时间。 一小时表示为 UNIX 时间戳,格式为 3600 秒; 一天表示为 86400 秒的 UNIX 时间戳,闰秒不计算在内。 具体对比表如下:
1.2 时间戳转换网站
以下是一些转换时间戳和特定时间的网站:
1.站长工具:
2.在线工具:
3.Json在线分析:
4.Unix时间戳在线转换(菜鸟工具):
5.北京时间(时间和时间戳交换工具):
介绍完时间戳的基础知识后,我们重点介绍一下与时间和日期相关的三个库:
中文意思是“日历”,所以它其实很适合承载日期,尤其是日历的形式。
2.1 模块内容
这里有些例子:
2.2
我们使用默认参数显示即将到来的 2020 年的日历:
年 = .(2020)
打印(年)
更改参数并再次显示:
年 = .(2020,w= 3,l= 1,c= 8)
打印(年)
我们发现整个日历变宽了,星期也用三个字母的英文显示。 解释一下三个参数的含义:
每条线长度为:21*w+18+2*c,一条线3个月
最后,看看即将到来的2021年日历:
2.3(年)
该函数的作用是判断某一年是否为闰年。 如果是,则返回 True,否则返回 False。
普通年份能被4整除,但不能被100整除,因此被称为普通闰年。
年份是一百,必须能被400整除,称为百年闰年。
普通年份能被4整除,但不能被100整除,因此被称为普通闰年。
年份是一百,必须能被400整除,称为百年闰年。
2.4 (y1,y2)
判断两年之间有多少个闰年,包括y1但不包括y2,类似于切片中的头部但不包括尾部
2.5个月(年,月,w=2,l=1)
该函数返回年月历,只有两行标题,每周一行。每日间隔宽度为w个字符,每行长度为7*w + 6,其中l为行数每个星期
首先看默认效果;
接下来我们改变两个参数w和l:
1.改变w,我们发现星期的表示变成了3个字母; 同时,每天之间的间隔变宽(左右间隔)
2.改变参数l,我们发现每周之前的区间(上下)变得更宽。
2.6(年、月)
以列表的形式返回年月历,无论是列表形式还是列表形式。 每个子列表为期一周。 如果没有本月的日期,则用0表示。每个子列表从周一1号开始,其特点总结如下:
我们以2020年12月为例:
对比上面的日历,我们发现: 12月份没有出现0出现的位置。
我们先来看看2020年3月的日历:
2.7(年、月)
该函数返回的结果是一个元组,元组中有两个值(a, b)
我通过一个例子来解释一下,我们以2020年12月为例:
结果中的1表示12月从第2周开始(0-6,6代表星期日),该月共有31天
2.8(年、米、日)
方法是输入年月日,我们就可以知道现在是星期几; 返回值为0-6,0代表星期几,6代表星期日
我们通过一个例子来解释一下,以12月12日为例:
双12是星期六,返回结果是5。5代表星期六,正好匹配。
3. 时间
时间模块是时间函数中最常用的模块。 常用于有相关时间要求的场合。 下面详细介绍一下该模块的使用方法。
3.1 模块内容
我们先看一下模块的整体使用情况
3.2次
time.time是获取当前时间,更严格地说,是获取当前时间的时间戳。
再次理解时间戳:它从1970年1月1日0:00:00开始,计算到当前的时间长度(不考虑闰秒)
再次理解时间戳:它从1970年1月1日0:00:00开始,计算到当前的时间长度(不考虑闰秒)
3.3
时间。 就是打印当前时间,结果是一个时间元组。 具体含义是:
注:结果是一个时间元组
注:结果是一个时间元组
时间参数。 默认为 time.time 的时间戳。 您可以自己输入时间戳来获取对应的时间。
3.4
获取的是当地时间。 如果需要国际化,请使用它。 最好使用格林威治标准时间。
格林威治标准时间:位于英国伦敦郊区的皇家格林威治天文台的标准时间,本初子午线在此经过。
3.5
当参数时间。 为空,默认使用时间值。 作为参数获取当前日期、时间、星期; 另外,我们还可以自己设置参数,参数是时间元组。
获取当前时间的具体时间和日期:
3.6c时间
ctime的参数默认为时间戳; 如果没有,您还可以指定时间戳。
3.7
它还接受一个时间元组作为参数,并返回一个时间戳,这相当于相反的过程:
3.8
它按照我们指定的格式将时间元组转换为字符串; 如果不指定时间元组,则默认为当前时间。 常用的时间格式如下表所示:
让我们用一个例子来说明:
3.9
就是将字符串转换为时间元组。 我们需要特别注意的是它有两个参数:
4.
虽然时间模块已经可以解决很多问题,但是在实际工作和业务需求中还需要更多的工具来让我们使用起来更加方便快捷。 它是非常有用的模块之一。 模块中常用的几个类如下:
4.2 日期
首先我们引入日期类并创建一个日期对象:
1、然后我们就可以操作这个日期对象的各种属性了:add
print("当前日期:",今天) #当前日期
print("当前日期(字符串):",today.ctime) # 返回日期字符串
print("时间元组信息:",today.) #当前日期的时间元组信息
print("Year:",today.year) # 返回今天对象的年份
print("month:",today.month) # 返回今天对象的月份
print("Day:",today.day) # 返回今天对象的日期
print("Week:",today.) #0 代表星期一,以此类推
print("公历序数:",today.) # 返回公历日期的序数
print("年/周数/周:",today.) # 返回一个元组:一年中的周数和星期几
# 结果显示