• python关于时间的计算,time模块


    import time, datetime
    
    # 时间的几种格式:
    # 一:时间戳(timestamp),1970年1月1日0点开始,到现在的秒数(以格林尼治时间为准)。
    # 数据类型为'float',浮点数,小数
    print('时间戳')
    print('当前时间')
    print(time.time())
    print(type(time.time()))
    print('=========================================')
    
    # 二:时间元组(Time tuple(time obj)),这是把年月日时分秒周日……作为一个元组
    # 数据类型为‘time.struct_time’,元组
    print('时间元组')
    print('当前时间')
    print(time.localtime())
    print(type(time.localtime()))
    print('年是0位:' + str(time.localtime()[0]))
    print('月是1位:' + str(time.localtime()[1]))
    print('日是2位:' + str(time.localtime()[2]))
    print('时是3位:' + str(time.localtime()[3]))
    print('分是4位:' + str(time.localtime()[4]))
    print('秒是5位:' + str(time.localtime()[5]))
    print('周几是6位:' + str(time.localtime()[6]))
    print('第几天是7位:' + str(time.localtime()[7]))
    print('夏令时是8位,但是没用:' + str(time.localtime()[8]))
    print('-----')
    print('年是0位:' + str(time.localtime().tm_year))
    print('月是1位:' + str(time.localtime().tm_mon))
    print('日是2位:' + str(time.localtime().tm_mday))
    print('时是3位:' + str(time.localtime().tm_hour))
    print('分是4位:' + str(time.localtime().tm_min))
    print('秒是5位:' + str(time.localtime().tm_sec))
    print('周几是6位:' + str(time.localtime().tm_wday))
    print('第几天是7位:' + str(time.localtime().tm_yday))
    print('夏令时是8位,但是没用:' + str(time.localtime().tm_isdst))
    print('=========================================')
    # 三:时间格式(Datetime obj),最准确的时间格式,还带毫秒
    # 类型为'datetime.datetime'
    print('时间格式')
    print('当前时间')
    print(datetime.datetime.now())
    print(type(datetime.datetime.now()))
    
    print('=========================================')
    # 四:时间字符串(string),就是字符串而已
    # 数据类型为‘str’,字符串
    print('字符串格式')
    print('当前时间')
    now = time.strftime('%Y%m%d%H%M%S')
    # % y 两位数的年份表示(00 - 99)
    # % Y 四位数的年份表示(000 - 9999)
    # % m 月份(01 - 12)
    # % d 月内中的一天(0 - 31)
    # % H 24小时制小时数(0 - 23)
    # % I 12小时制小时数(01 - 12)
    # % M 分钟数(00 = 59)
    # % S 秒(00 - 59)
    # % a 本地简化星期名称
    # % A 本地完整星期名称
    # % b 本地简化的月份名称
    # % B 本地完整的月份名称
    # % c 本地相应的日期表示和时间表示
    # % j 年内的一天(001 - 366)
    # % p 本地A.M.或P.M.的等价符
    # % U 一年中的星期数(00 - 53)星期天为星期的开始
    # % w 星期(0 - 6),星期天为星期的开始
    # % W 一年中的星期数(00 - 53)星期一为星期的开始
    # % x 本地相应的日期表示
    # % X 本地相应的时间表示
    # % Z 当前时区的名称
    # % % % 号本身
    print(now)
    print('=========================================')
    # 时间字符串,就是一个字符串,不方便进行计算,首先弃用。
    # 时间戳,是个浮点数,也不方便进行计算,也弃用。
    # 时间元组,是个元组,不能直接存入数据库,还是弃用。
    # 时间格式,这是最基本的格式,优先选用。
    # time模块,是以时间戳为基础的。
    # datetime模块,是以时间格式为基础的。
    # 首先讲定制时间
    # 指定时间
    # 其实看置顶图,左右是时间格式,上面是字符串,下面是时间戳
    # 想指定时间,就需要从字符串或时间戳转换过去,时间戳还要计算,我们一般用字符串转换为时间格式。
    print('指定时间')
    print('datetime指定时间,datetime格式,图上datetime.datetime.strptime(str,format)')
    # 可以设置7个参数来指定时间
    S_datetime = datetime.datetime(2019, 10, 29, 21, 39, 2, 21111)
    print(S_datetime)
    # 可以精简为3个参数
    S_datetime = datetime.datetime(2019, 10, 28)
    print(S_datetime)
    print(type(S_datetime))
    print('time指定时间,time时间格式(元组),图上time.strptime(str,format)')
    S_time = time.strptime('2019102921392', '%Y%m%d%H%M%S')
    print(S_time)
    S_time = time.strptime('20191029', '%Y%m%d')
    print(S_time)
    # 甚至可以精简到2个参数
    S_time = time.strptime('201910', '%Y%m')
    print(S_time)
    S_time = time.strptime('2019年10月29日21时39分2秒', '%Y年%m月%d日%H时%M分%S秒')
    print(S_time)
    print(type(S_time))
    
    print('=========================================')
    
    # 再转换回去
    # datetime转换为字符串,图上dt_obj.strftime()
    print('时间格式转换为字符串')
    print('datetime时间格式转换为字符串,图上dt_obj.strftime()')
    print(S_datetime)
    print(type(S_datetime))
    D_str = S_datetime.strftime('%Y-%m-%d %H:%M:%S %f')
    print(D_str)
    D_str = S_datetime.strftime('%Y%m%d%H%M%S%f')
    print(D_str)
    print(type(D_str))
    print('time时间格式转换为字符串,图上time.strftime(format,t_tp)')
    print(S_time)
    print(type(S_time))
    T_str = time.strftime('%Y%m%d%H%M%S', S_time)
    print(T_str)
    T_str = time.strftime('%Y-%m-%d %H:%M:%S', S_time)
    print(T_str)
    print('=========================================')
    # 时间元组和时间格式互转
    print('时间格式和时间元组互转')
    print(S_time)
    print(type(S_time))
    print(S_datetime)
    print(type(S_datetime))
    
    print('时间格式转时间元组,图上dt_obj.timetuple()')
    T_D = S_datetime.timetuple()
    print(T_D)
    print('++++++++')
    print('时间元组转时间格式,图上datetime.datetime(t_tp)')#待更新
    D_T=datetime.datetime(S_time.tm_year,S_time.tm_mon,S_time.tm_mday)
    print(D_T)
    
    print('=========================================')
    #时间戳待更新,暂时用的不多。
    
    
    print('字符串转时间戳,分两步')
    string_2_struct = time.strptime("2016/05/22", "%Y/%m/%d")  # 将 日期字符串 转成 struct时间对象格式
    print(string_2_struct)
    struct_2_stamp = time.mktime(string_2_struct)  # 将struct时间对象转成时间戳
    print(struct_2_stamp)
    print('--------')
    
    # # time.clock用于计算执行时间
    # t0 = time.clock()  # 第一次调用time.clock,标记一个时间为0.0
    # time.sleep(2)
    # t1 = time.clock()  # 第二次调用,从第一个time.clock开始到现在的时间
    # time.sleep(2)
    # t2 = time.clock()  # 第三次调用,从第一个time.clock开始到现在的时间
    # print(t0)
    # print(t1)
    # print(t2)
    # print(t1 - t0)
    # print(t2 - t1)
    # print(t2 - t0)
    
    # time.sleep(5)#以秒为单位暂停
    
    # 以下字符串方便用来存记录,
    now_time = time.strftime('%Y-%m-%d %H:%M:%S')  # 20171123093804  当前时间
    print(now_time)
    print(type(now_time))  # 格式是字符串
    print('----------')
    now = str(datetime.datetime.now())
    print(now)
    print(type(now))  # 格式是字符串 带毫秒的
    print('----------')
    today = time.strftime('%Y%m%d')  # 20171123 当前日期
    print(today)
    print(type(today))  # 格式是字符串
    print('----------')
  • 相关阅读:
    什么是JAVA?JAVA能做什么?
    vagrant 虚拟机搭建 以及virtualbox 安装 配置
    sourcetree跳过注册的方法
    layuiAdmin安装
    Navicat获取注册码
    laravel artisan命令大全
    vagrant命令
    安装python 3.7
    搭建golang webcron 定时任务管理平台
    mysql创建用户
  • 原文地址:https://www.cnblogs.com/jackadam/p/7845888.html
Copyright © 2020-2023  润新知