• 027 time


    两种时间表示

    时间戳

    • 1970年1月1日0时0分0秒到现在的时间
    • 不同语言,精度不同,有整数也有浮点数
    • 如果查找的时间是1970年以前或者遥远的未来,可能出现异常
    • 32位系统能够支持到2038年

    时间元组

    属性
    tm_year 2019
    tm_mon 1~12
    tm_mday 1~31
    tm_hour 0~23
    tm_min 0~59
    tm_sec 0~61[1]
    tm_wday 0~6
    tm_yday 1~366
    tm_isdst 0, 1, -1[2]

    名词解释

    UTC

    • 又称世界协调时间世界标准时间
    • 以英国的格林尼治天文台所在地区的时间作为参考的时间
    • 中国在东八区,按 UTC+8

    DST

    • 夏令时
    • 在夏天的时候将时间调快一小时
    • 本意是督促大家早睡早起节省蜡烛,每天变成 25 个小时,本质没变还是 24 小时

    举例

    >>> import time  # 下面的例子就不重复这个导入操作了
    >>> 
    

    例1

    • time.timezone: 当前时区和 UTC 时间相差的秒数

    • time.altzone: 对使用夏令时的地区而言,获取当前时区与 UTC 时间相差的秒数

    • time.daylight

      • 测当前是否是夏令时时间状态
      • 不使用夏令时的地区返回 0
    >>> time.timezone
    -28800
    >>> time.altzone
    -32400
    >>> time.daylight
    0
    >>> 
    

    例2

    • time.time(): 获取当前时间戳
    • time.localtime([secs])
      • 时间戳转时间元组
      • 若没传值,则转换当前的时间戳
    >>> time.time()
    1576070236.623945
    >>> time.localtime()
    time.struct_time(tm_year=2019, tm_mon=12, tm_mday=11, tm_hour=21, tm_min=17, tm_sec=29, tm_wday=2, tm_yday=345, tm_isdst=0)
    >>> t = time.localtime()
    >>> t.tm_hour
    21
    

    例3

    • time.asctime([tupletime])
      • 将时间元组转换为日期字符串
      • 若没传值,则转换当前的时间戳
    >>> t1 = time.localtime()
    >>> t2 = time.asctime(t1)
    >>> type(t2)
    <class 'str'>
    >>> t2
    'Wed Dec 11 21:18:03 2019'
    

    例4

    • time.ctime([secs])
      • 时间元组转日期字符串
      • 相当于 asctime(localtime([secs]))
      • 若没传值,则转换当前的时间戳
    >>> t = time.ctime()
    >>> type(t)
    <class 'str'>
    >>> t
    'Wed Dec 11 21:19:02 2019'
    

    例5

    • time.mktime(tupletime)
      • 时间元组转时间戳
      • 大多数时区,mktime(gmtime(0)) 通常不会返回零;返回 timezonealtzone
    >>> lt = time.localtime()
    >>> ts = time.mktime(lt)
    >>> type(ts)
    <class 'float'>
    >>> ts
    1576070374.0
    

    例6

    • time.clock()
      • 浮点秒数转 CPU 时间
      • 依赖操作系统
    • time.sleep(secs)
      • 延迟函数
      • 参数可以是浮点数
    # run in ipython
    t0 = time.clock()
    time.sleep(3)
    t1 = time.clock()
    print(t1 - t0)
    

    >>>

    ...
    DeprecationWarning: time.clock has been deprecated in Python 3.3 and will be removed from Python 3.8: use time.perf_counter or time.process_time instead
      """Entry point for launching an IPython kernel.
    3.0017606999999984
    ...
    This is separate from the ipykernel package so we can avoid doing imports until
    
    • 官方友情提醒
      • Python 3.3 以后不推荐,3.8 中被移除
      • 使用 time.perf_counter()time.process_time() 代替

    例7

    • time.strftime(format[, t])
      • 用时间元组格式化日期
      • 若没传值,则转换当前的时间元组
    符号 释义
    %Y 四位数的年份表示 [000,9999]
    %y 两位数的年份表示[00,99]
    %m 月份 [01,12]
    %d 月内某天 [01,31]
    %H 24 小时制的小时数 [00,23]
    %I 12小时制的小时数 [01,12]
    %M 分钟数 [00,59]
    %S 秒数 [00,61]
    %z 当前时区名称
    用 +HHMM 或 -HHMM 表示距离格林威治的时区偏移
    H 代表十进制的小时数,M 代表十进制的分钟数
    %a 本地星期简写
    %A 本地星期名称
    %b 本地月份简写
    %B 本地月份名称
    %c 本地相应的日期表示和时间表示
    %p 本地 A.M. 或 P.M. 的等价符
    补充符号 释义
    %j 一年中的第几天 [001,366]
    %U 一年中的星期数 [00,53] 周日是一周的开始
    第一个周日之前的所有天数都放在第 0 周
    %w 一个星期中的第几天 [0,6],0 是周日
    %W %U 基本相同,不过 %W 以周一为一周的开始
    %x 本地相应日期
    %X 本地相应时间
    %% % 本身
    >>> lt = time.localtime()
    >>> ft = time.strftime("%Y-%m-%d %H:%M", lt)
    >>> ft
    '2019-12-11 21:20'
    >>> 
    

    1. 60表示闰秒(世界时与原子时的调整),61是保留值(历史遗留) ↩︎

    2. 实行夏令时,为正;不实行夏令时,为0;不了解情况时,为负。 ↩︎

  • 相关阅读:
    机器学习三--分类--邻近取样(Nearest Neighbor)
    机器学习二——分类算法--决策树DecisionTree
    机器学习一--基本概念
    python学习--常用正则表达式整理
    python学习--字符编码问题
    python学习--字符串处理相关方法
    python学习--如何在一个for循环中迭代多个可迭代对象(串行,并行)
    python学习--如何对迭代器进行切片操作
    List对象去重
    List 简单升降序实现
  • 原文地址:https://www.cnblogs.com/yorkyu/p/12025286.html
Copyright © 2020-2023  润新知