V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
jakeyfly
V2EX  ›  问与答

Python 里的时间对比查了一下午 有点晕, 详细的写下求教大佬们

  •  
  •   jakeyfly · 2018-03-16 17:43:40 +08:00 · 2007 次点击
    这是一个创建于 2233 天前的主题,其中的信息可能已经有所发展或是发生改变。

    now_time = datetime.datetime.now().time() 输出 datetime.time(17, 39, 19, 998928) 怎么才能不要 后面这个 998928

    用 now_time = datetime.datetime.now().strptime("%H:%M:%S") 结果应该变成字符串了 不是时间类型了

    然后我想设定一个时间 t = '2018,2,17,01,30,00' tt = datetime.datetime.strptime(t, "%Y,%m,%d,%H,%M,%S") t.time() 输出 datetime.time(1, 30)

    上面的当前时间是 str 跟这个时间做对比出错 提示是类型不一样 然后如何才能获取当前时间的 小时 分 秒 跟 这个设定的时间做对比大小呢

    13 条回复    2018-03-16 20:57:40 +08:00
    CloudnuY
        1
    CloudnuY  
       2018-03-16 17:48:07 +08:00
    分别把%H %M %S 存在三个变量里再比较,多方便………………
    CloudnuY
        2
    CloudnuY  
       2018-03-16 17:49:33 +08:00


    这样也能拿到时分秒
    jakeyfly
        3
    jakeyfly  
    OP
       2018-03-16 17:53:57 +08:00
    @CloudnuY 我是比较是不是在一个时间之后啊比如 早上十点之后
    CloudnuY
        4
    CloudnuY  
       2018-03-16 17:54:49 +08:00
    jakeyfly
        5
    jakeyfly  
    OP
       2018-03-16 17:57:12 +08:00
    @CloudnuY 还有一个场景是要比较完整时间的 所以 还是想弄个不带最后那个时区数据的 datetime 对像
    zjb861107
        6
    zjb861107  
       2018-03-16 18:00:58 +08:00 via iPhone
    datetime 可以直接比较大小
    Anybfans
        7
    Anybfans  
       2018-03-16 18:03:55 +08:00
    同楼上 直接把 2 个时间都转化成 datetime 类型的(相同时区)。然后直接比较大小就行了
    jakeyfly
        8
    jakeyfly  
    OP
       2018-03-16 18:08:30 +08:00
    @zjb861107 大佬 这个我知道啊 我现在碰到的问题是, 当前时间 datetime.now() 带时区 转换的字符串时间不知道怎么带时区,就是最后面那一串数字。。。。现在要么 now()把时区去掉,要么转换字符串时间的时候带上时区 两种我都不会 求教一种~~~~~~~
    @Anybfans
    CloudnuY
        9
    CloudnuY  
       2018-03-16 18:20:32 +08:00
    后面那一串数字是 microsecond 微秒吧
    jakeyfly
        10
    jakeyfly  
    OP
       2018-03-16 18:26:28 +08:00
    @CloudnuY 啊~~~~~那我坑了~~~~我搞错了
    jakeyfly
        11
    jakeyfly  
    OP
       2018-03-16 18:26:45 +08:00
    @CloudnuY 他马文档中说是时区 我日了~~~~~
    laoyur
        12
    laoyur  
       2018-03-16 19:08:15 +08:00
    >>> now = datetime.datetime.now().time()
    >>> now
    datetime.time(19, 6, 48, 654624)
    >>> now.replace(microsecond=0)
    datetime.time(19, 6, 48)
    jakeyfly
        13
    jakeyfly  
    OP
       2018-03-16 20:57:40 +08:00
    @laoyur 大佬 666
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   1837 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 30ms · UTC 16:42 · PVG 00:42 · LAX 09:42 · JFK 12:42
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.