当前位置 : 主页 > 编程语言 > python >

python 时间与日期模块总结

来源:互联网 收集:自由互联 发布时间:2022-09-29
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))
  • 输出结果
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

1.2 判断是否为闰年

# 判断是否为闰年 calendar.isleap(2022)
  • 输出结果
False

2.time 模块

time主要功能体现在时间计算、处理以及显示格式上

2.1显示当前时间

  • 使用time( )方法可以返回字1970年1月1日起0时0分0秒为计时器点的时间戳
  • # 返回当前时间戳 time.time()
    • 输出结果
    1664183018.168783
  • 如果想要获取年月日形式的时间,则可以采用localtime( )、asctime( )、ctime( )方法来实现
    • 三者的比较
    方法名 参数 返回结果 localtime() 时间戳 时间元组形式 ctime() 时间戳 字符串形式 asctime() 时间元组 字符串形式
    • 实例
    t1 = time.localtime(2022) print(t1) time.ctime(2022) time.asctime(t1)
    • 输出结果
    time.struct_time(tm_year=1970, tm_mon=1, tm_mday=1, tm_hour=8, tm_min=33, tm_sec=42, tm_wday=3, tm_yday=1, tm_isdst=0) 'Thu Jan 1 08:33:42 1970' 'Thu Jan 1 08:33:42 1970'
  • 补充
  • 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或1

    2.2字符与时间的转换

    时间数据在文件中一般保存成字符串形式,如“12/02/2016”,通过 time模块中的strftime()方法和strptime()方法可实现时间的字符串形式与时间元组形式互相转换。

    两个函数的参数形式如下:

    # strptime函数将特定形式的字符串形式转换成时间元组 time.strptime(string[, format]) # strftine()函致将时间元组转换成特定形式的时间元组 time.strftime(format [, t])
    • 举个例子
    from time import strftime, strptime t1 = strptime("22/09/2021", "%d/%m/%Y") print(t1) strftime("%d %b %y", t1)
    • 输出结果
    time.struct_time(tm_year=2021, tm_mon=9, tm_mday=22, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=2, tm_yday=265, tm_isdst=-1) '22 Sep 21'

    上述代码中," $%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
    • 输出结果
    datetime.datetime(2022, 9, 26, 21, 56, 17, 575501)

    3.2进行时间的加减

    datetime对象进行减法运算后会返回一个timedelta对象,表示一个时间段

    delta = datetime(2022, 9, 10) - datetime(2022, 9, 1) delta
    • 输出结果
    datetime.timedelta(days=9)

    3.3字符串与日期的转换

    同样的,datetime中也有strftime和strptime用作字符串和日期之间的转换

    • 举个例子
    now = datetime.now() datetime.strftime(now, "%d/%m/%Y") datetime.strptime("2022-09-23", "%Y-%m-%d")
    • 输出结果
    '26/09/2022' datetime.datetime(2022, 9, 23, 0, 0)

    ==如果认为设置“ $%d/%m/%Y$ ”这种日期格式十分麻烦,可以使用deteutil的第三方包paser.pars()函数实现自动转移,它能够解析几乎任何格式(当然也可能会带来一些麻烦,如:parse("10"))==

    • 举个栗子
    from dateutil.parser import parse parse("23-09-2022", dayfirst=True) parse("23-09-2022") parse("10") # 会默认为当月的10号进行解析
    • 输出结果
    datetime.datetime(2022, 9, 23, 0, 0) datetime.datetime(2022, 9, 23, 0, 0) datetime.datetime(2022, 9, 10, 0, 0) 【本文转自:海外高防服务器 http://www.558idc.com/krgf.html 欢迎留下您的宝贵建议】
    网友评论