【问题标题】:Python taking away timePython 带走时间
【发布时间】:2020-07-22 22:38:10
【问题描述】:

我正在尝试一次又一次地找出用户帐户将被锁定多长时间,而不是得到这个:

0:23:48:55

我明白了:

21 days , 23:48:55

我正在使用这种方法:

end_time = accounts[user].get("today")
start_time = datetime.datetime.now().time().strftime("%d:%H:%M:%S")
total_time =(datetime.datetime.strptime(end_time,'%d:%H:%M:%S') - datetime.datetime.strptime(start_time, '%d:%H:%M:%S'))
print(total_time)

end_time 包含明天的日期,即:

23:14:29:21 

所以把当前时间带走应该给:

0:23:48:21 

但不是 21 天。
任何想法为什么这样做以及如何解决这个问题

【问题讨论】:

  • accounts[user].get("today") 中的值是多少?
  • 23:14:29:21 或明天下午 2:29 21 秒
  • 打印start_time的值;不是你想的那样。
  • 现在它已修复感谢您注意到 m8

标签: python time


【解决方案1】:

问题出在你的 start_time 因为.time() 删除了当天的值。

end_time = "23:14:29:21"
start_time = datetime.datetime.now().strftime("%d:%H:%M:%S")
total_time =(datetime.datetime.strptime(end_time,'%d:%H:%M:%S') - datetime.datetime.strptime(start_time, '%d:%H:%M:%S'))
print(total_time)

【讨论】:

  • 您必须连接变量以使其成为单个字符串,例如:showerror(f"This account was locked, Please contact the admin to unlock your account.\n It will get unlocked in {8}")
  • 做了类似这样的事情 error.showerror("This account was locked","请联系管理员解锁您的帐户。\n 它将在 %s" % total_time) 但谢谢跨度>
【解决方案2】:

会更像这样,.time() 函数会删除当天的值(而不是计算天数(如 0,1))

#Fixed Code
end_time = "23:14:29:21"
start_time = time.strftime("%d:%H:%M:%S")
total_time =(datetime.datetime.strptime(end_time,'%d:%H:%M:%S') - datetime.datetime.strptime(start_time, '%d:%H:%M:%S'))
print(total_time)

【讨论】:

    【解决方案3】:

    改变了

    start_time = datetime.datetime.now().time().strftime("%d:%H:%M:%S")
    

    start_time = time.strftime("%d:%H:%M:%S")
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-07-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多