已知的格式是

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. 手把手教你实战TDD

    1. 前言 领域驱动设计,测试驱动开发. 我们在<手把手教你落地DDD>一文中介绍了领域驱动设计(DDD)的落地实战,本文将对测试驱动开发(TDD)进行探讨,主要内容有:TDD基本理解.T ...

  2. StencilJs学习之事件

    其实并没有所谓的 stencil Event,相反 stencil 鼓励使用 DOM event.然而,Stencil 提供了一个 API 来指定组件可以触发的事件,以及组件监听的事件. 这是通过 E ...

  3. TransformersandNLPforVideoUnderstanding

    目录 1. 引言 2. 技术原理及概念 3. 实现步骤与流程 4. 应用示例与代码实现讲解 <Transformers and NLP for Video Understanding> 1 ...

  4. React框架学习基础篇-HelloReact-01

    一直想掌握一门前端技术,于是想跟着张天宇老师学习,便开始学习React,以此来记录一下我的学习之旅. 学习一门新的技术首先是去官网看看,React官网链接是[https://zh-hans.react ...

  5. Matlab学习1

    Matlab 数据类型 数字 字符和字符串 矩阵 元胞数组 结构体 清空环境变量及命令 cls % 清除Command Windows中的所有命令 clear all % 清除Workspace*中的 ...

  6. 如何将Maven项目快速改造成一个java web项目(方式二)

    原始的maven项目,使用IDEA打开后,目录结构如下所示 删除pom.xml文件,删除resource目录,将java目录下的代码放到项目根目录下, 将webapp目录放到项目根目录下.如下图所示 ...

  7. ubuntu发行版内核源码下载

    Ubuntu 发行版linux内核在哪里? 内核安装包:http://archive.ubuntu.com/ubuntu/pool/main/l/linux/ 内核源码:https://git.lau ...

  8. C++(继承)

    继承 struct Person { int age; int sex; }; struct Teacher { int age; int sex; int level; int classId; } ...

  9. 层叠样式表(CSS)1

    一.css的简介 1.层叠样式表的含义 层叠样式表:css是不仅是表现HTML的语言.还是进行样式修饰的语言 层叠:是对一个元素多次设置同一个样式,层层叠加覆盖,如不同的样式对一html标签进行修饰, ...

  10. DDD项目落地之充血模型实践

    背景: 充血模型是DDD分层架构中实体设计的一种方案,可以使关注点聚焦于业务实现,可有效提升开发效率.提升可维护性: 1.DDD项目落地整体调用关系 调用关系图中的Entity为实体,从进入领域服务( ...