首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何比较strftime值

如何比较strftime值
EN

Stack Overflow用户
提问于 2013-11-22 11:11:39
回答 4查看 7.4K关注 0票数 3

我从strftime创建了两个值,如下所示

代码语言:javascript
复制
TIMEFORMAT="%Y-%m-%d %H:%M:%S"

time1 = time.strftime(TIMEFORMAT)
time2 = time.strftime(TIMEFORMAT)

现在,time1和time 2的值类似于"2013-11-22 04:03:56" "2013-11-22 01:03:56"

这些值由其他要文件的脚本编写。我正在从文件中读取这些值,然后进行比较。

我想比较一下这样的事情

代码语言:javascript
复制
if time1 > time2:
    # do etc. etc. 

如何比较这些时代?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2013-11-22 11:13:50

是的,你可以比较它们。是的,t1 > t2

代码语言:javascript
复制
In [1]: t1 = "2013-11-22 04:03:56"

In [2]: t2 = "2013-11-22 01:03:56"

In [3]: t1 > t2
Out[3]: True

In [4]: t1 < t2
Out[4]: False

In [5]: t1 == t2
Out[5]: False
票数 5
EN

Stack Overflow用户

发布于 2013-11-22 11:25:42

希望这能帮到你:

代码语言:javascript
复制
In [1]: from datetime import datetime, timedelta

In [2]: nd = datetime.now()

In [3]: pd = nd - timedelta(hours=1)

In [4]: snd = nd.strftime("%Y-%m-%d %H:%M:%S")

In [5]: spd = pd.strftime("%Y-%m-%d %H:%M:%S")

In [6]: print(snd, spd)
('2013-11-22 15:21:22', '2013-11-22 14:21:22')

In [7]: datetime.strptime(snd, "%Y-%m-%d %H:%M:%S") > datetime.strptime(spd, "%Y-%m-%d %H:%M:%S")
Out[7]: True
票数 2
EN

Stack Overflow用户

发布于 2014-01-22 14:12:47

我在Win-7 PC上使用UNXUTILS中的gawk (gawk)。这个对strftime(.)的回答问题本身提出了一个小小的谜团。我也有类似的问题。在金融市场数据中,我有一个日期-时间字符串($25),作为"03-APR-2006 09:55:25“(so time = substr($25,13,8)),我的目标是统计14:00(下午2点)之后出现的记录(特别是订单取消记录)。

在我的代码中,我有一行内容:

代码语言:javascript
复制
         { if ($3==3) { 
                       { ++CK_NR} 
                       { ++CO_NR[$4, substr($25, 1, 11)] }  
                       { if (strftime(substr($25, 13, 8)) > ("14:00:00"))\
                         {
                          { ++CK_LATE_NR }
                          { ++CO_LATE_NR[$4, substr($25, 1, 11)] }
                         }
                       }
                      }
         }

刚刚意识到我使用的不等式-- if (strftime(substr($25,13,8)) >(“14:00:00”) --在RHS中只有一个字符串,和我没有让这个字符串成为另一个strftime(.)的参数。令人费解的是,它并没有给我一个错误。

我担心的是,虽然它没有生成任何错误,而且代码已经运行,但它可能给了我的不是我想要的代码。在命令提示符窗口中,执行

代码语言:javascript
复制
      \>gawk "{ print (strftime(\"09:55:25\") > (\"14:00:00\")) }"

产生"0“和

代码语言:javascript
复制
      \>gawk "{ print (strftime(\"09:55:25\") < (\"14:00:00\")) }"

会产生"1“。GNU手册(http://www.gnu.org/software/gawk/manual/gawk.html#Time-Functions)很少提供有意义的比较所需的信息。刚才试着从LHS中删除"strftime“,如下所示

代码语言:javascript
复制
      \>gawk "{ print ((\"09:55:25\") > (\"14:00:00\")) }"

代码语言:javascript
复制
      \>gawk "{ print ((\"09:55:25\") > (\"14:00:00\")) }"

得到了同样的结果。所以,当我把这个作为候选的“答案”提供给时,我想确定我得到的是正确的正误结果,因为GAWK是在比较时间,而不是它在进行字符串比较时使用的其他内部规则(导致有限的测试只是巧合)。能解决这个难题吗?谢谢。最好的

穆基

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20143456

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档