• python时间格式转换


    今天写python时遇到时间格式的比较问题

    已知的格式是

    06/24/2021 15:47:01.491
     
    时间比较的思路是,把数据转换成时间戳比较:
     
    第一步是把 06/24/2021 15:47:01.491 格式转换称 2021-06-24 15:47:01.490000
     
    valid_time = '06/24/2021 15:47:01.490'
    d1 = datetime.datetime.strptime(valid_time,'%m/%d/%Y %H:%M:%S.%f')
    d2 = datetime.datetime.strptime(valid_time,'%m/%d/%Y %H:%M:%S.%f').strftime('%Y-%m-%d %H:%M:%S.%f')
    print(d1, type(d1))
    print(d2, type(d2))

    结果:

      2021-06-24 15:47:01.490000 <class 'datetime.datetime'>
      2021-06-24 15:47:01.490000 <class 'str'>
     
    第二步是将 2021-06-24 15:47:01.490000 数据转换成毫秒的时间戳
     
    dd = datetime.datetime.strptime(valid_time,'%m/%d/%Y %H:%M:%S.%f')
    ts = int(time.mktime(dd.timetuple()) * 1000.0 + (dd.microsecond / 1000.0))
    print(ts, type(ts))

    结果:

      1624520821490 <class 'int'>

    如果是秒级的数据转换成时间戳:

    def get_time_stamp(valid_time):
        dd = datetime.datetime.strptime(valid_time, '%m/%d/%Y %H:%M:%S').strftime('%Y-%m-%d %H:%M:%S')
        ts = int(time.mktime(time.strptime(dd, '%Y-%m-%d %H:%M:%S')))
        print(ts)
    
    if __name__ == '__main__':
        get_time_stamp("06/24/2021 15:47:01")

    结果:

      2021-06-24 15:47:01 <class 'str'>

      1624520821

     
    第三步就是两个毫秒级的时间戳进行比较
    '''
    @description: 获取时间的时间戳进行时间大小比较
    @param {*} valid_time 传入的时间格式:指定为 "06/24/2021 15:47:01.490"
    @return {*}    返回 valid_time 的时间戳
    @author: wanghao
    '''
    def get_time_stamp(valid_time):
        dd = datetime.datetime.strptime(valid_time,'%m/%d/%Y %H:%M:%S.%f')
        ts = int(time.mktime(dd.timetuple()) * 1000.0 + (dd.microsecond / 1000.0))
        return ts
    
    if __name__ == '__main__':
        stamp1 = get_time_stamp("06/24/2021 15:47:01.490")
        stamp2 = get_time_stamp("06/24/2021 15:47:01.778")
        if (stamp1 - stamp2 <= 0):
            print('stamp1 is bigger')
        else:
            print('stamp2 is bigger')

    如果传进来的字符串是毫秒级的,但是需要的时间戳是秒级的,就转换一下

    def get_time_stamp(valid_time):
        dd = datetime.datetime.strptime(valid_time,'%m/%d/%Y %H:%M:%S.%f').strftime("%Y-%m-%d %H:%M:%S")
        ts = int(time.mktime(time.strptime(dd, '%Y-%m-%d %H:%M:%S')))
        return ts
    
    if __name__ == '__main__':
        stamp1 = get_time_stamp("06/24/2021 15:47:01.490")
        stamp2 = get_time_stamp("06/24/2021 15:47:02.778")
        if (stamp1 - stamp2 <= 0):
            print('stamp2 is bigger')
        else:
            print('stamp1 is bigger')

    总结:

      两个时间比较,就是把两个时间的字符串转换成int类型的时间戳进行比较。

     
  • 相关阅读:
    Math类四个常用方法辨析,floor、ceil、round、rint
    【转】ctypes库的使用整理
    【转】采用dlopen、dlsym、dlclose加载动态链接库【总结】
    【转】collectd的部署
    【转】Pycharm Professional(专业版)完美破解,
    【转】在结构体最后定义一个长度为0的字符数组(技巧)
    【转】C++11智能指针之weak_ptr
    轻量级、高性能http代理服务器,内网穿透从未如此简单。
    php 大文件上传 redis+php resque 较低io消耗
    leetcode 870. 优势洗牌
  • 原文地址:https://www.cnblogs.com/wanghao-boke/p/15023382.html
Copyright © 2020-2023  润新知