Python 为什么结果不是00:00:XX?
我以为是00:00:0X,但是09:00:0X出来了,我该怎么做才能得到00:00:0X呢Python 为什么结果不是00:00:XX?,python,time,Python,Time,我以为是00:00:0X,但是09:00:0X出来了,我该怎么做才能得到00:00:0X呢 import time start = input("Enter를 누르면 타이머를 시작합니다.") begin = time.time() while True: time.sleep(1) count = time.time() result = time.localtime(count - begin) print(count - begin
import time
start = input("Enter를 누르면 타이머를 시작합니다.")
begin = time.time()
while True:
time.sleep(1)
count = time.time()
result = time.localtime(count - begin)
print(count - begin)
print(time.strftime('%I:%M:%S', result))
结果:
1.0102884769439697
09:00:01
2.0233511924743652
09:00:02
3.0368154048919678
它显示09:00:00,因为您处于UTC+9时区。例如,我在UTC+1(法国)时,它为我显示01:00:00。因此,根据运行代码的位置,代码将有不同的输出 要删除此时区约束,只需使用
datetime.timedelta
:
begin = time.time()
while True:
time.sleep(1)
count = time.time()
print(datetime.timedelta(seconds=round(count - begin)))
输出:
0:00:01
0:00:02
0:00:03
0:00:04
0:00:05
将提供自1970年1月1日以来的秒数(UTC)
因此,begin
是一个巨大的数字,count
也将是一个巨大的数字+大约1。减去这些将得到大约1
如果您将此消息传递给time.time()
您将得到1.1.1970加1秒。转换为本地时间()将为您提供任何时区偏移量。显然+9小时
您可能需要的是24小时格式的文件和输出。这会有用的
import time
start = input("Enter를 누르면 타이머를 시작합니다.")
begin = time.time()
while True:
time.sleep(1)
count = time.time()
result = time.gmtime(count - begin)
print(count - begin)
print(time.strftime('%H:%M:%S', result))
但它在语义上是不正确的。如果减去2个日期,结果是时间跨度,而不是日期。有什么区别
如果有人问,你多大了,你看一下当前年份,然后减去出生年份。然后你说“我25岁了”。你不会加上1.1.1970,然后说“我1995岁了”
因此,从语义上讲,下面的内容要好得多:
import time
from datetime import timedelta
start = input("Enter를 누르면 타이머를 시작합니다.")
begin = time.time()
while True:
time.sleep(1)
count = time.time()
timespan = timedelta(seconds=count - begin)
print(timespan)
你在哪个时区?如果你在日本,UTC+9,你会看到当地时间的转换。在我看来,这就像韩语
datetime.timedelta(seconds=count-begin)
将时差转换为当地时间很奇怪:你会在1970年1月1日得到一个时间戳,n秒。如前所述,使用您的本地时区偏移。如上所述,使用timedelta
。这会有所帮助