【问题标题】:having issues with python time objectpython时间对象有问题
【发布时间】:2015-08-23 19:26:11
【问题描述】:

我有一个小程序,它可以从系统中获取时间并对其进行一些算术运算。 这是我的代码:

import time
import datetime
c_time = time.strftime("%H:%M;%S")

# now to convert it into time object i am using 

c_time_converted = datetime.datetime.strptime(c_time,"%H:%M;%S")

print c_time_converted

输出格式为:

1900-01-01 11:39:40 但我只想要时间部分,当我拆分并对其执行其他操作时,我会返回一个 字符串,但我需要时间格式,以便我可以执行时间主题

我想要 11:39:40

的形式

【问题讨论】:

    标签: python date time


    【解决方案1】:

    只需使用 .time():

    from datetime import datetime
    c_time = '2015-06-08 23:13:57'
    c_time_converted = datetime.strptime(c_time,"%Y-%m-%d %H:%M:%S")
    print c_time_converted
    print c_time_converted.time()
    

    打印:

    2015-06-08 23:13:57
    23:13:57
    

    编辑(处理有关日期时间的评论)

    这是一个使用日期时间差异的简单示例:

    from datetime import timedelta
    
    c_time_later = '2015-06-08 23:50:21'
    c_time_later_converted = datetime.strptime(c_time_later,"%Y-%m-%d %H:%M:%S")
    dt = c_time_later_converted - c_time_converted
    print dt  # time I was away from stackoverflow
    

    打印:0:36:24

    现在我们将dt 时间添加回上面的c_time 并看到我们恢复c_time_later

    print (c_time_converted + dt).time()
    

    打印:23:50:21

    或者使用 timedelta 添加一个小时:

    print (c_time_converted + timedelta(hours=1)).time() # prints 00:13:57
    

    【讨论】:

    • 这很好用,但是当我使用 datetime.strptime( someTime,"%H:%M:%S").time() + datetime.strptime( someOtherTime,"%H:%M: %S").time() 它给出错误
    • 您可以将datetime.timedelta 对象添加到日期时间对象。然后在你想打印的时候切换到.time()
    • @user3521918 对,正如 camz 指出的那样,只需将 datetime.timedelta 添加到日期时间。见stackoverflow.com/questions/13685201/…stackoverflow.com/questions/100210/…
    【解决方案2】:

    试试这个。

    import time
    import datetime
    c_time = time.strftime("%H:%M;%S")
    
    c_time_converted = datetime.datetime.strptime(c_time,"%H:%M;%S")
    
    print c_time_converted.time()
    

    输出:

    12:04:31
    

    获取当前日期和时间。

    from datetime import datetime
    print datetime.now().strftime('%Y-%m-%d %H:%M:%S')
    

    输出:

    2015-06-09 12:09:09
    

    【讨论】:

      【解决方案3】:

      我对您的代码做了一个小改动。请检查。它只会给你时间。

      import time
      import datetime
      c_time = time.strftime("%H:%M:%S")
      # now to convert it into time object i am using 
      c_time_converted = datetime.datetime.strptime(c_time,"%H:%M:%S")
      print c_time_converted.time()
      

      【讨论】:

      • 但是在使用 .time() 之后,不支持两个这样的值的算术运算,但这就是我想要实现的目标
      • 我完全同意@Scott。您可以使用 time timedelta 对象添加两次,然后从对象中获取时间。
      猜你喜欢
      • 2017-03-24
      • 2015-03-11
      • 2019-06-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-04-21
      • 2020-08-13
      • 1970-01-01
      相关资源
      最近更新 更多