• python -- 日期与时间


    1、时间戳

    时间戳是指从格林威治时间1970年1月1日0时0分0秒(北京时间1970年1月1日8时0分0秒),起到当前时间的总秒数。

    函数time.time()用于获取当前时间戳。

    时间戳是以秒为单位的浮点数。适合用做日期和时间的加减运算。

    例如,计算两个时间的间隔,可以先将两个时间转化为时间戳,再进行减法运算。

    二、时间元组

    时间元组struct_time:包含了9组数字,如下表:

    时间元组与时间戳、格式化时间字符串之间均可以相互转换。

    三、格式化时间

    time.strftime(format [, tuple]):将日期和时间元组转换为一个格式为format的字符串。

    import time


    # -----------------------------------------
    # time时间模块
    # -----------------------------------------
    # 时间戳
    t1 = time.time() # 获取当前时间戳
    print("第一个时间戳为:", t1)

    t2 = time.time()
    print("第二个时间戳为:", t2)

    # 计算两个时间的间隔
    print("时间差为:{.3f}".format(t2-t1))

    # 时间元组
    # localtime():将以秒为单位的时间戳转化为本地时间(以时间元组的形式)
    t3 = time.time()
    st = time.localtime(t3)
    # st = time.localtime() #不传入参数,打印出的是当前系统时间
    print(st)

    # 格式化时间
    # 最简单的获取可读时间模式的函数是asctime(),字符串的格式为“星期 月份 日 时:分:秒 年”
    print(time.asctime(time.localtime(time.time())))
    # print(time.asctime()) #打印出格式为:Sun Jul 21 20:04:04 2019

    # ctime()可以把一个时间戳转化为asctime()可视化时间的形式
    print(time.ctime(t3)) #打印出的格式与asctime()一致

    # strftime()可以使用time模块的strftime方法来格式化日期
    print(time.strftime("%Y-%m-%d %A", time.localtime())) # 默认为当前时间
    print(time.strftime("%H:%M:%S", time.localtime())) # 24小时制
    print(time.strftime("%I:%M:%S", time.localtime())) # 12小时制

    # strptime()用于根据指定的格式把一个时间字符串转化为时间元组
    print(time.strptime('2018-09-12 16:28:58', '%Y-%m-%d %X'))

    # clock()函数返回目前的CPU时间。
    # 第一次调用时,返回程序运行的实际时间
    print(time.clock())
    # 将当前进程置入睡眠状态5秒钟
    time.sleep(5)
    # 第二次调用时,返回自第一次调用到这一次调用的时间间隔
    print(time.clock())

    # gmtime()将时间戳转换为代表UTC(格林威治时间)的时间元组,默认为当前时间
    secs = 1582414145
    print(time.gmtime(secs))
    print(time.gmtime())

    # mktime()将时间元组转换为时间戳
    lt = time.localtime()
    print(time.mktime(lt))
    import calendar


    # -----------------------------------------
    # calendar日历模块
    # -----------------------------------------
    # 返回2018年10月日历
    cal = calendar.month(2019, 10)
    print("输出2019年10月份的日历:")
    print(cal)

    # 返回2019年的年历
    cal1 = calendar.calendar(2019)
    print(cal1)

    # 判断年份是否为闰年
    year = 2020
    if calendar.isleap(year):
    print("%d年是闰年" % year)
    else:
    print("%d年不是闰年" % year)

    # 设置每周的起始日期码。0(星期一)到6(星期日)
    calendar.setfirstweekday(6)
    # 返回当前每周起始日期的设置。默认为0星期一
    print("每周起始日期码为:", calendar.firstweekday())

    # 返回给定日期的日期码,0(星期一)到6(星期日)
    print(calendar.weekday(2019, 7, 21))


    四、datatime模块
    datetime模块提供对日期和时间的各种各样的操作。
    datetime模块定义了两个常量:
      MINYEAR: 最小年份,值为1
      MAXYEAR:最大年份,值为9999

    datetime模块定义了5个类:
    1.date:日期类,常用属性有year、month和day
    2.time:时间类,常用属性有hour、minute、second、microsecond和tzinfo
    3.datetime:日期和时间的组合类
    4.timedelta:时间间隔类,即两个时间点之间的长度
    5.tzinfo:时区信息类

    import datetime
    import time

    # -------------------------------------------------------------
    # datetime模块定义了5个类:date、time、datetime、timedelta、tzinfo
    # -------------------------------------------------------------
    # date类
    # 返回当前本地时间的date对象
    today = datetime.date.today()
    print("今天是{}年{}月{}日".format(today.year, today.month, today.day))

    # 创建两个日期对象
    d1 = datetime.date(2018, 8, 25)
    d2 = datetime.date(2018, 9, 18)

    # 比较两个日期的大小
    d1.__eq__(d2) # 判断两个日期是否相等
    d1.__ge__(d2) # 判断d1是否大于等于d2
    d1.__gt__(d2) # 判断d1是否大于d2
    d1.__le__(d2) # 判断d1是否小于等于d2
    d1.__lt__(d2) # 判断d1是否小于d2
    d1.__ne__(d2) # 判断d1是否不等于d2

    # time类
    # 创建一个时间对象
    t = datetime.time(10, 28, 32, 680680)
    print("{}时{}分{}秒{}微秒".format(t.hour, t.minute, t.second, t.microsecond))

    # 同样可以比较两个时间的大小

    # max属性表示时间的最大值
    print(datetime.time.max) #打印的是:23:59:59.999999
    # min属性表示时间的最小值
    print(datetime.time.min) #打印的是:00:00:00

    # __format__()函数将时间对象以指定的格式转化为字符串
    print(t.__format__('%H:%M:%S'))

    # datetime类可以看作date类和time类的合体,大部分方法和属性都与这两个类类似
    # now()返回当前的日期时间的datetime对象
    now = datetime.datetime.now()
    print(now)

    # time()返回datetime对象的时间部分
    print(now.time())

    # combine()将一个date对象和一个time对象合并生成一个datetime对象
    new_datetime = datetime.datetime.combine(today, now.time())
    print(new_datetime)

    # timedelta类
    # 用于计算两个date或datetime对象的差值
    # 计算100天前的时间
    delta = datetime.timedelta(days=100)
    print(delta)
    new_time = now - delta
    print(new_time)

    # 计算100天后的时间
    new_time2 = now + delta
    print(new_time2)

    # 获取上个月的第一天和最后一天的日期
    # 获取当前日期对象
    today = datetime.date.today()
    print(today)
    delta = datetime.timedelta(days=1)

    # 获取当月第一天的前面一天,即上个月的最后一天
    last_day = datetime.date(today.year, today.month, 1) - delta
    print(last_day)

    # 再创建个上月第一天的日期对象
    first_day = datetime.date(last_day.year, last_day.month, 1)
    print(first_day)

    # 获取时间差,可以用天数、小时、分钟、秒或微秒不同的单位
    start_time = datetime.datetime.now()
    time.sleep(6)
    end_time = datetime.datetime.now()
    print((end_time - start_time).seconds)

    # 计算当前时间向后32小时的时间
    dt1 = datetime.datetime.now()
    dt2 = dt1 + datetime.timedelta(hours=32)
    print(dt2) 
  • 相关阅读:
    M1阶段的开发过程的一些反思
    Alpha版本发布说明
    Alpha版本BUG BASH
    Notes of Daily Scrum Meeting(11.19)
    Notes of Daily Scrum Meeting(11.17)
    Notes of Daily Scrum Meeting(11.15)
    Notes of Daily Scrum Meeting(11.14)
    flask_sqlalchemy介绍
    SQLAlchemy 简单笔记
    Python-3.6 安装pycrypto 2.6
  • 原文地址:https://www.cnblogs.com/Teachertao/p/11222696.html
Copyright © 2020-2023  润新知