已知的格式是

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类型的时间戳进行比较。

Python比较字符串格式类型时间大小的更多相关文章

  1. Python_time库_特定字符串格式的时间、struct_time、时间戳的处理

    time库 时间戳:格林威治时间1970年01月01日00时00分00秒(北京时间1970年01月01日08时00分00秒)起至现在的总秒数. # time.strptime(),功能:将特定字符串格 ...

  2. python 下字符串格式时间比较

    python 下有多个有关时间的模块,分别是time.datetime.calendar,今天重点讨论下time写法. 其中time模块,主要有以下方法: ltime=time.time() 获取当前 ...

  3. Python实现ParseDuration-支持解析字符串格式的时间单位,例如将小时或者分钟数转换为秒

    python的time模块不支持单独将字符串格式的分钟数和小时数转换为秒,比如将“5m”转换为“300”(秒),不支持将“0.2h5.1m12.123s”转换为“1038.123”(秒). 但是这种字 ...

  4. js把字符串格式的时间转换成几秒前、几分钟前、几小时前、几天前等格式

    最近在做项目的时候,需要把后台返回的时间转换成几秒前.几分钟前.几小时前.几天前等的格式:后台返回的时间格式为:2015-07-30 09:36:10,需要根据当前的时间与返回的时间进行对比,最后显示 ...

  5. 判断库中为字符串格式的时间是否为最近三个月(Java)

    今天分享一个问题,就是标题中提到的问题,今天在调用一个接口的时候,发现调用到的数据的时间格式为字符串类型,我有点蒙圈,于是,我就百度解决了这个问题,同时在这里记录一下,为了之后不再蒙圈::: 首先需要 ...

  6. js 字符串格式化为时间格式

    首先介绍一下我遇到的坑,找了几个关于字符串转时间的,他们都可以就我用的时候不行. 我的原因,我的字符串是MYSQL拿出来的不是标准的时间格式,是不会转成功的. 解决思路:先将字符串转为标准时间格式的字 ...

  7. python基础-字符串(str)类型及内置方法

    字符串-str 用途:多用于记录描述性的内容 定义方法: # 可用'','''''',"","""""" 都可以用于定义 ...

  8. python 检测字符串编码类型是什么

    for index,value in enumerate(listvalue): adchar=chardet.detect(value) print adchar if adchar['encodi ...

  9. js获取此刻时间或者把日期格式时间转换成字符串格式的时间

    getTime(val){ if (val&val instanceof Date){ d = val; }else{ d = new Date(); }; var year = d.getF ...

  10. python基础 ---time,datetime,collections)--时间模块&collections 模块

    python中的time和datetime模块是时间方面的模块 time模块中时间表现的格式主要有三种: 1.timestamp:时间戳,时间戳表示的是从1970年1月1日00:00:00开始按秒计算 ...

随机推荐

  1. Min-25 筛学习笔记

    Min-25 筛学习笔记 \(\text{By DaiRuiChen007}\) 一.简要介绍 Min-25 筛,是一种能在亚线性时间内求出特定的一类积性函数 \(f(i)\) 的前缀和的算法. 具体 ...

  2. 如何优化数据warehouse的搜索和查询

    目录 1. 引言 2. 技术原理及概念 2.1 基本概念解释 2.2 技术原理介绍 2.2.1 查询优化 2.2.2 索引优化 2.2.3 数据访问优化 2.3 相关技术比较 2.3.1 SQL 2. ...

  3. Apache Hudi 元数据字段揭秘

    介绍 Apache Hudi 最初由Uber于 2016 年开发,旨在实现一个交易型数据湖,该数据湖可以快速可靠地支持更新,以支持公司拼车平台的大规模增长. Apache Hudi 现在被业内许多人广 ...

  4. 利用Anaconda3安装tensorflow/keras,并迁移虚拟环境至不能上网的电脑

    利用Anaconda3安装tensorflow/keras,并迁移虚拟环境至不能上网的电脑 下面记录下利用Anaconda安装tensorflow和keras,前前后后也踩了不少坑.并分别在windo ...

  5. curl 调用url时带有&符号被截断

    转载请注明出处: 用curl命令在服务器上调试接口时,一直调试不通,执行如下: 在用curl 执行之后,返回了一个 作业id [ 1 ] 23926 ; 并打印出了 调用执行的url,发现 真正执行的 ...

  6. docker笔记-安装、操作和Registry

    注意事项 强烈建议docker宿主机关闭firewalld,改用iptables 1 docker安装 1.1 离线安装 下载 Docker 二进制文件(https://download.docker ...

  7. Linux 命令:rpm查询选项

    rpm(8) System Manager's Manual rpm(8) 名称 rpm - RPM 软件包管理器 查询选项 rpm的查询命令通常的格式如下: rpm -q [query-option ...

  8. Centos 8 时钟同步

    Centos 8 时钟同步使用的是 chrony 参考:https://www.cnblogs.com/my-show-time/p/14658895.html $ rpm -qa | grep ch ...

  9. 2021-7-29 MySql多表查询详解

    多表连接 左连接:返回第一张表的所有数据项然后拼接第二张表(左表全有,右表对应左表才有) 右连接:返回第二张表的所有数据项然后拼接第一张表(右表全有,左表对应右表才有) 内连接:返回两张表数据相等的数 ...

  10. 牛客小白月赛64 C题 题解

    题目链接 题意描述 这一题的意思其实就是,让你构造一个\(n * k\)的矩阵,使得第 i 列的总和为 i ,同时使得:每一列的任意两个数之间的差不大于1,且任意两行之间的总和差不大于1. \(1 \ ...