zoukankan      html  css  js  c++  java
  • 时间戳转为日期字串

    时间戳转为日期字串

    一、背景
    有时需要将时间戳:1565673941
    转为日期字串:2019-08-13 13:25:41。

    二、分析
    采用python,
    编写转换函数:time2date(1565673941)
    返回时间戳:2019-08-13 13:25:41。
    编写转换函数:time2date(1565673941.123456789)
    返回时间戳:2019-08-13 13:25:41.123。

    三、封装好的函数方法

    import time
    
    
    # 封装好的函数2.1:时间戳 转为 日期字符串。单位s,秒。
    def time2date(timeint=1565673941, format="%Y-%m-%d %H:%M:%S"):
        '''
        时间戳转为日期字串,单位s,秒
        :param timeint:时间戳
        :return:日期字串
        输出举例说明:
        (1565673941, "%Y-%m-%d %H:%M:%S")  输出  2019-08-13 13:25:41
        (1565673941, "%Y-%m-%d")  输出  2019-08-13
        (1565673941, "%Y%m%d")  输出  20190813
        '''
        local_time = time.localtime(timeint)
        data_head = time.strftime(format, local_time)
    
        return data_head
    
    
    def time2datems(timefloat, keep_small_num=3, date_format="%Y-%m-%d %H:%M:%S"):
        '''
        浮点时间戳转为日期字符串格式。
        :param timefloat: 时间戳,浮点型。
        :param keep_small_num:保留有效小数位数。即定义输出后面小数格式。
        :param date_format:定义输出前面主体日期格式。
        使用举例说明:
        (1565673941.123456789, 1, date_format="%Y-%m-%d %H:%M:%S")  输出:2019-08-13 13:25:41.1
        (1565673941.123456789, 3, date_format="%Y-%m-%d %H:%M:%S")  输出:2019-08-13 13:25:41.123
        (1565673941.123456789, 3, date_format="%Y%m%d %H:%M:%S")  输出:20190813  13:25:41.123
        :return:日期字符串,精确到毫秒,ms。
        '''
        # 获取前半截。日期和大时间
        local_time = time.localtime(timefloat)
        data_head = time.strftime(date_format, local_time)
    
        # 获取后半截。毫秒。保留有效数位后。
        ms_format = '{:.%sf}' % keep_small_num
        keep_small_float = ms_format.format(timefloat)
        keep_small_str = str(keep_small_float).split(".")
        ms_str = str(keep_small_str[1])
    
        # 拼接前后部分。
        dt_ms = "%s.%s" % (data_head, ms_str)
    
        return dt_ms
    
    
    if __name__ == '__main__':
        timeint1 = 1565673941
        format1 = "%Y-%m-%d %H:%M:%S"
        d1 = time2date(timeint1, format1)
        print(d1)
    
        timeint2 = 1565673941
        format2 = "%Y%m%d"
        d2 = time2date(timeint2, format2)
        print(d2)
    
        timefloat3 = 1565673941.123456789
        d3 = time2datems(timefloat3, 2)
        print(d3)
    
        timefloat4 = 1565673941.123456789
        format4 = "%Y%m%d  %H:%M:%S"
        d4 = time2datems(timefloat4, 3, format4)
        print(d4)
    

      

    延伸:

    UTC时间、ISO格式

    1、UTC时间是英国时间。非UTC(英国)时间,如:UTC+8(北京)时间。

    2、ISO格式是时间的字符串表示形式

    (1)用字母T分割日期和时间。如20180703T224426Z或2018-07-03T22:44:26Z 。

    (2)用字母Z表示是UTC(英国)时间。但是不加Z的不一定是什么时间了。

    参考:

    https://www.cnblogs.com/doit8791/p/10398997.html

    https://www.cnblogs.com/AcAc-t/p/datetime_utc_iso.html

  • 相关阅读:
    jenkins配置完全正确,控制台显示邮件发送成功,但未收到问题
    中移4G模块-ML302-OpenCpu开发-串口开发
    中移4G模块-ML302-OpenCpu开发-(MQTT连接阿里云-RRPC通讯)
    中移4G模块-ML302-OpenCpu开发-(MQTT连接阿里云-接收和发送数据)
    中移4G模块-ML302-OpenCpu开发-GPIO
    中移4G模块-ML302-OpenCpu开发-服务器搭建
    中移4G模块-ML302-OpenCpu开发-前端网页搭建
    中移4G模块-ML302-OpenCpu开发-(MQTT连接阿里云-订阅主题)
    中移4G模块-ML302-OpenCpu开发-2-MQTT连接阿里云
    MateBook14一个多月的使用体验(开发向)
  • 原文地址:https://www.cnblogs.com/andy9468/p/12627597.html
Copyright © 2011-2022 走看看