博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Python日期字符串比较
阅读量:7086 次
发布时间:2019-06-28

本文共 2076 字,大约阅读时间需要 6 分钟。

hot3.png

需要用python的脚本来快速检测一个文件内的二个时间日期字符串的大小,其实实现很简单,首先一些基础的日期格式化知识如下

复制代码

你可以试下下面的方式来取得当前时间的时间戳: import time print time.time() 输出的结果是: 1357723206.31

但是这样是一连串的数字不是我们想要的结果,我们可以利用time模块的格式化时间的方法来处理: time.localtime(time.time()) 用time.localtime()方法,作用是格式化时间戳为本地的时间。 输出的结果是: time.struct_time(tm_year=2010, tm_mon=7, tm_mday=19, tm_hour=22, tm_min=33, tm_sec=39, tm_wday=0, tm_yday=200, tm_isdst=0)

现在看起来更有希望格式成我们想要的时间了。 time.strftime('%Y-%m-%d',time.localtime(time.time()))

最后用time.strftime()方法,把刚才的一大串信息格式化成我们想要的东西,现在的结果是: 2013-01-09

输出日期和时间:

time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(time.time()))

%a星期的简写。如 星期三为Web

%A星期的全写。如 星期三为Wednesday
%b月份的简写。如4月份为Apr
%B月份的全写。如4月份为April
%c: 日期时间的字符串表示。(如: 04/07/10 10:43:39)
%d: 日在这个月中的天数(是这个月的第几天)
%f: 微秒(范围[0,999999])
%H: 小时(24小时制,[0, 23])
%I: 小时(12小时制,[0, 11])
%j: 日在年中的天数 [001,366](是当年的第几天)
%m: 月份([01,12])
%M: 分钟([00,59])
%p: AM或者PM
%S: 秒(范围为[00,61],为什么不是[00, 59],参考python手册~_~)
%U: 周在当年的周数当年的第几周),星期天作为周的第一天
%w: 今天在这周的天数,范围为[0, 6],6表示星期天
%W: 周在当年的周数(是当年的第几周),星期一作为周的第一天
%x: 日期字符串(如:04/07/10)
%X: 时间字符串(如:10:43:39)
%y: 2个数字表示的年份
%Y: 4个数字表示的年份
%z: 与utc时间的间隔 (如果是本地时间,返回空字符串)
%Z: 时区名称(如果是本地时间,返回空字符串)
%%: %% => %

复制代码

然后需要了解python中time,datetime,字符串时间之间的转换关系,如下代码是三者之间的转换关系

复制代码

jsontime = '2017-04-03'

#string->time
time.strptime(jsontime,"%Y-%m-%d")
#string->datetime
datetime.datetime.strptime(jsontime,"%Y-%m-%d")
#time->string
time.strftime("%y-%m-%d",time.localtime())

复制代码

那么有了转换关系以后,比较大小就很容易了,比如我可以把日期字符串转换成time的时间戳来比较大小,如下

复制代码

import time

def compare_time(time1,time2):
    s_time = time.mktime(time.strptime(time1,'%Y-%m-%d'))
    e_time = time.mktime(time.strptime(time2,'%Y-%m-%d'))
    print 's_time is:',s_time
    print 'e_time is:',e_time
    return int(s_time) - int(e_time)

result = compare_time('2017-04-17','2017-04-19')

print 'the compare result is:',result

复制代码

当然也可以利用datetime来比较字符串的大小

import datetime

d1 = datetime.datetime.strptime('2015-03-05 17:41:20', '%Y-%m-%d %H:%M:%S')
d2 = datetime.datetime.strptime('2015-03-02 17:41:20', '%Y-%m-%d %H:%M:%S')
delta = d1 - d2
print delta.days

转载于:https://my.oschina.net/u/3371661/blog/2987205

你可能感兴趣的文章
[C++] Returning values by reference in C++
查看>>
匹配图片修改图片名称
查看>>
C#知识点
查看>>
C#之父
查看>>
pytorch加载数据的方法-没弄,打算弄
查看>>
Retrofit进行post提交json数据
查看>>
<base>标签
查看>>
.NET C#读取Excel内容
查看>>
团队-象棋游戏-模块测试过程
查看>>
android之WakeLock机制浅析
查看>>
Springboot连接MySQL8.0出现的问题
查看>>
(转) weblogic 域,管理服务器,受管服务器,集群和机器的基本知识
查看>>
Python之面向对象特性
查看>>
iphone-common-codes-ccteam源代码 CCUIScreen.h
查看>>
CSS 文本和表格中文字溢出显示省略号
查看>>
欧几里得游戏(博弈论启蒙)
查看>>
String 字符串相等比较
查看>>
jsp中九大内置对象
查看>>
Java 文件复制
查看>>
C# winform在关闭窗体的时候及时释放内存问题
查看>>