如何解决当秒的格式为 3 位数时,如何将时间转换为秒?
说我有这个时间
00:46:19,870
它代表 46h 19m
的地方,870 是 870/1000
一分钟(我想我可以去掉最后一部分)。如何将其转换为秒?
我试过了
time.strptime('00:46:19,870'.split(',')[0],'%H:%M:%S')
但意识到它无法工作,因为它使用的格式与我的不同。
如何将 00:46:19,870
转换为 2779
?
解决方法
您已经接近了,您仍然可以使用 datetime
来计算时间增量。你真正拥有的并不是真正的约会,而是看似秒表的时间。您仍然可以从中剥离时间,您会注意到 Python 使用默认的年、月和日。您可以使用该默认值在几秒钟内计算出增量:
from datetime import datetime
DEFAULT_DATE = (1900,1,1)
stopwatch = datetime.strptime('00:46:19,870','%H:%M:%S,%f')
a_timedelta = stopwatch - datetime(*DEFAULT_DATE)
seconds = a_timedelta.total_seconds()
print(seconds)
,
有空时查看此链接。
https://www.w3schools.com/python/gloss_python_date_format_codes.asp
取决于您要达到的粒度:
-
%p:上午/下午
-
%H:00-23 小时
-
%I:00-12 小时
-
%M:00-59 分钟
-
%S:第二个 00-59
-
%f:微秒 000000-999999
上面列出的链接将允许您尝试不同的格式。
import datetime
from time import sleep
def how_many_seconds():
current_datetime = datetime.datetime.now()
view_enhancer = 13
space_character = "~"
# String versions of Date and Time
current_half_str = str(current_datetime.strftime("%p"))
current_hour_str = str(current_datetime.strftime("%H"))
current_minute_str = str(current_datetime.strftime("%M"))
current_seconds_str = str(current_datetime.strftime("%S"))
current_microsecond_str = str(current_datetime.strftime("%f"))
# Int/Float versions of Date and Time
current_hour = int(current_datetime.strftime("%H"))
current_minute = int(current_datetime.strftime("%M"))
current_seconds = int(current_datetime.strftime("%S"))
current_microsecond = float(current_datetime.strftime("%f"))
# 3600 seconds in an hour
# Please note:
# https://www.checkyourmath.com/convert/time/hours_seconds.php
these_zeroes = [0,0.0,"0","0.0"]
current_seconds_wrt_minutes = (
current_minute * 60 + current_seconds if current_minute not in these_zeroes else current_seconds)
# avoiding multiplication by 0
current_seconds_wrt_hours = (
current_hour * 3600 if current_hour not in these_zeroes else 0)
safe_seconds = current_seconds_wrt_minutes + current_seconds_wrt_hours
print(" ")
print(space_character * view_enhancer*2)
print(current_half_str,current_hour_str + "h " + current_minute_str + "m " + current_seconds_str + "s " + current_microsecond_str)
print(space_character * view_enhancer)
print(current_hour_str + " hours")
print(current_minute_str + " minutes")
print(current_seconds_str + " seconds")
print(space_character * round(view_enhancer * .5))
print(current_seconds_wrt_minutes," Total seconds in minutes and seconds")
# only increments seconds every hour
print(current_seconds_wrt_hours,"Total seconds in hours")
print(safe_seconds,"Total seconds of current time")
def main():
while True:
how_many_seconds()
sleep(1.314)
if __name__ == '__main__':
main()
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。