代码之家  ›  专栏  ›  技术社区  ›  Jacques Amsel

如何从字符串中获取相对时间?

  •  -2
  • Jacques Amsel  · 技术社区  · 7 年前

    例如,用户将输入 7d 5m 4w 7min 6h

    time = datetime.datetime.strptime(str, "%M %H %d %m")
    

    但这给了我一个特殊的时间,而不是长度。如果用户输入“35min”或“35m” time

    1 回复  |  直到 7 年前
        1
  •  0
  •   rocksportrocker    7 年前

    你可以减去2 datetime 物体。结果是 datetime.timedelta

    started = datetime.datetime.now()
    
    str = "20 12 01 01 2019"
    time = datetime.datetime.strptime(str, "%M %H %d %m %Y")
    
    diff = time - started
    
    print(str(diff))
    print(diff.total_seconds())
    

    这是输出:

    121 days, 0:52:12.768755
    10457532.768755
    

    datetime.datetime.now() + datetime.timedelta(minutes=60)
    

    创建 datetime.datetime now 一小时前。


    这是一种更简单的方法: time.time() 自1970年1月1日起测量秒数(作为浮点值)。因此,如果你想在0.1秒内完成一些工作,你可以写:

    import time
    
    started = time.time()
    while time.time() < started + 0.1:
        print("do some work")
    

    datetime.datetime.strptime