• Python--时间模块time模块


    原地址:https://finthon.com/python-time/

    Python时间模块——time模块

    简介

    在数据处理当中,经常会碰到处理时间的问题。比如:在序列预测的过程中,需要通过学习一段时间的数据,去预测未来一段时间的结果。这时候就要用到时间(time、datetimecalendar)模块,今天介绍时间模块中的time模块。

    表示时间的方法

    在Python中有三种表示时间的方式:

    • 时间戳:是指某个时间与1970年1月1日00:00:00的差值,单位为秒,是一个浮点型数值;
    • 格式化时间:格式化时间由字母和数字表示的时间,比如:’Mon Oct 29 16:04:27 2018’;
    • 元组:将时间的信息放到一个元组中。

    其中格式化时间中每个字符的含义如下:

    符号描述
    %a 简化星期名称
    %A 完整星期名称
    %b 简化月份名称
    %B 完整月份名称
    %c 相应的日期和时间表示
    %d 一个月中的第几天(01 – 31)
    %H 一天中的第几个小时(24小时制,00 – 23)
    %I 第几个小时(12小时制,01 – 12)
    %j 一年中的第几天(001 – 366)
    %m 月份(01 – 12)
    %M 分钟数(00 – 59)
    %p 本地am或者pm的相应符
    %S 秒(01 – 61)
    %U 一年中的星期数。(00 – 53星期天是一个星期的开始。)第一个星期天之前的所有天数都放在第0周
    %w 一个星期中的第几天(0 – 6,0是星期天)
    %W 和%U基本相同,不同的是%W以星期一为一个星期的开始
    %x 相应日期
    %X 相应时间
    %y 去掉世纪的年份(00 – 99)
    %Y 完整的年份
    %Z 时区的名字(如果不存在为空字符)
    %% ‘%’字符

    在元组中会有9项参数,如下表所示:

    关键字描述
    tm_year
    tm_mon 月(1-12)
    tm_mday 日(1-31)
    tm_hour 时(0-23)
    tm_min 分(0-59)
    tm_sec 秒(0-61),闰年多两秒
    tm_wday 周一-周日(0-6)
    tm_yday 一年中第几天(1-366)
    tm_isdst 是否夏令时(1:是;0:不是;-1:未知;默认 -1)

    time模块中常用的函数可以总结成下图,基本上就是三者如何转换:

    《Python时间模块——time模块》

    接下来我们会一一介绍。

    time.time()

    该函数返回当前时间的时间戳,也就是距离1970年1月1日00:00:00的差值。

    代码演示:

    time.localtime()

    该函数能将一个时间戳转换成元组的形式,如果没有指定时间戳,默认使用当前时间的时间戳。需要注意的是返回的时间是当地时间。

    代码演示:

    time.gmtime()

    该函数和localtime()的功能一样,只是它返回的时间是格林威治天文时间(UTC),也就是世界标准时间。中国时间为UTC+8。

    代码演示:

    time.mktime()

    该函数将一个元组转换成时间戳。

    代码演示:

    time.sleep()

    该函数能让程序线程暂停休息,传入几秒,休息几秒。

    代码演示:

    结果为:

    time.asctime()

    该函数将一个元组转换成格式化时间。如果没有传入参数,默认传入time.localtime()

    代码演示:

    time.ctime()

    该函数将一个时间戳转换成格式化时间。如果没有传入参数,默认传入time.time()

    代码演示:

    time.strftime()

    该函数按照格式化字符把一个元组转换成格式化时间字符串。如果没有传入参数,默认传入time.localtime()

    代码演示:

    time.strptime()

    该函数按照格式化字符把一个格式化时间字符串转成元组。

    需要注意的是,当传入的时间中包括周数和天数(%U和%W),该函数才能使用。

    总结

    本文介绍了time模块中常用的几个函数,主要涉及到三种时间格式之间的转换。time模块在机器学习中,尤其在序列数据中使用较多。

  • 相关阅读:
    编程思想
    为什么静态成员、静态方法中不能用this和super关键字
    C#中静态与非静态方法比较
    数组,集合,列表的使用与区别
    2017-3-23 网络IP
    [精彩] 关于DB2的内存分配
    DB2 常用命令
    SQL0973N在 "<堆名>" 堆中没有足够的存储器可用来处理语句
    DB2通用数据库性能调整的常用方法
    创建DB2数据库联合对象
  • 原文地址:https://www.cnblogs.com/wangyanyan/p/11151238.html
Copyright © 2020-2023  润新知