python标准库中关于日期和时间的库主要有三个:calendar、time和datetime。 1.calemdar模块 calendar模块在日历的获取、显示以及年份是否为闰年等方面有诸多函数支持 1.1打印日历 import calendar
python标准库中关于日期和时间的库主要有三个:calendar、time和datetime。
1.calemdar模块
calendar模块在日历的获取、显示以及年份是否为闰年等方面有诸多函数支持
1.1打印日历
import calendar # 输出2022年9月份的日历 print(calendar.month(2022, 9))- 输出结果
1.2 判断是否为闰年
# 判断是否为闰年 calendar.isleap(2022)- 输出结果
2.time 模块
time主要功能体现在时间计算、处理以及显示格式上
2.1显示当前时间
- 输出结果
- 三者的比较
- 实例
- 输出结果
localtime()函数返回值为时间元组,struct_time元组为时间元组,将诸多时间相关属性存储成元组的形式。
struct_time元组有9个属性元素,9个元素代表的意义如下表所示。
元素下标值 属性 含义 值 tm_year 年(四位数形式) 2022 1 tm_mon 月 1~12 2 tm_mday 日 1~31 3 tm_hour 时 0~23 4 tm_min 分 0~59 5 tm_sec 秒 0~61 6 tm_wday 一周中的第几天 0~6(0代表一周) 7 tm_yday 一年中的第几天 0~366 8 tm_isdst 夏令时 -1,0或12.2字符与时间的转换
时间数据在文件中一般保存成字符串形式,如“12/02/2016”,通过 time模块中的strftime()方法和strptime()方法可实现时间的字符串形式与时间元组形式互相转换。
两个函数的参数形式如下:
# strptime函数将特定形式的字符串形式转换成时间元组 time.strptime(string[, format]) # strftine()函致将时间元组转换成特定形式的时间元组 time.strftime(format [, t])- 举个例子
- 输出结果
上述代码中," $%d/%m/%Y$ " 表示的是时间格式,具体含义可参照下表:
符号格式 含义 取值(字符格式) $%y$ 略去世纪的两位十进制数年份 取值为00~ 99(如“16”) $%Y$ 完全形式的年份 如“2016” $%m$ 返回月份值 取值为01~12(如“02") $%b$ 本地简化月份名称 月份简写的英文名称(如“Feb") $%B$ 本地全部月份名称 月份英文名称(如“February") $%d$ 每个月天数的十进制形式 取值为01~31(比如,02代表2日) $%a$ 本地简化星期名称 如“Sat” $%A$ 本地完整星期名称 如“Saturday” $%w$ 十进制数字表示星期 取值0~6,0表示星期天 $%W$ 一年中的星期数 取值00~53,星期一为星期的开始;在新年第一个星期一之前的所有天数都视为00周 $%U$ 一年中的星期数 取值00 ~53,星期天为星期的开始;在新年第一个星期天之前的所有天数都视为00周 $%H$ 二十四小时制时间 取值为00~ 23 $%I$ 十二小时制时间 取值为01~ 12 $%M$ 分钟 取值为00~59 $%S$ 秒 取值为00~61(考虑到闰秒的情况)3.datetime模块
datetime模块的作用和time模块十分相似,经常用于一些转换和运算操作
3.1获取当前时间
from datetime import datetime now = datetime.now() now- 输出结果
3.2进行时间的加减
datetime对象进行减法运算后会返回一个timedelta对象,表示一个时间段
delta = datetime(2022, 9, 10) - datetime(2022, 9, 1) delta- 输出结果
3.3字符串与日期的转换
同样的,datetime中也有strftime和strptime用作字符串和日期之间的转换
- 举个例子
- 输出结果
==如果认为设置“ $%d/%m/%Y$ ”这种日期格式十分麻烦,可以使用deteutil的第三方包paser.pars()函数实现自动转移,它能够解析几乎任何格式(当然也可能会带来一些麻烦,如:parse("10"))==
- 举个栗子
- 输出结果