Bằng cách sử dụng divmod()hàm, chỉ thực hiện một phép chia duy nhất để tạo ra cả thương số và phần còn lại, bạn có thể có kết quả rất nhanh chỉ với hai phép toán: m, s = divmod(seconds, 60)h, m = divmod(m, 60)
Bạn đang đọc: 10000 giây bằng bao nhiêu Giờ
Và sau đó sử dụng định dạng chuỗi để quy đổi tác dụng thành đầu ra mong ước của bạn : print ( ‘ { : d } : { : 02 d } : { : 02 d } ‘. format ( h, m, s ) ) # Python 3 print ( f ‘ { h : d } : { m : 02 d } : { s : 02 d } ‘ ) # Python 3.6 +Tôi khó hoàn toàn có thể đặt tên theo cách thuận tiện ( tối thiểu là tôi không hề nhớ cú pháp ), nhưng hoàn toàn có thể sử dụng time.strftime, giúp trấn áp định dạng nhiều hơn : from time import strftime from time import gmtime strftime ( ” % H : % M : % S “, gmtime ( 666 ) ) ‘ 00:11:06 ‘ strftime ( ” % H : % M : % S “, gmtime ( 60 * 60 * 24 ) ) ‘ 00:00:00 ‘gmtime được sử dụng để quy đổi giây sang định dạng tuple đặc biệt quan trọng strftime ( ) nhu yếu .
Lưu ý: Cắt ngắn sau 23:59:59
Không có ‘:0>8’định dạng: “{}”.format(str(timedelta(seconds=66)))# Result: ’00:01:06’ “{}”.format(str(timedelta(seconds=666777)))# Result: ‘7 days, 17:12:57’ “{}”.format(str(timedelta(seconds=60*60*49+109)))# Result: ‘2 days, 1:01:49’
Sử dụng time: from time import gmtime from time import strftime # NOTE: The following resets if it goes over 23:59:59! strftime(“%H:%M:%S”, gmtime(125))# Result: ’00:02:05′ strftime(“%H:%M:%S”, gmtime(60*60*24-1))# Result: ’23:59:59′ strftime(“%H:%M:%S”, gmtime(60*60*24))# Result: ’00:00:00′ strftime(“%H:%M:%S”, gmtime(666777))# Result: ’17:12:57’# Wrong
Đây là mẹo nhanh của tôi : from humanfriendly import format_timespan secondsPassed = 1302 format_timespan ( secondsPassed ) # ‘ 21 minutes and 42 seconds ‘Để biết thêm thông tin Truy cập : https://humanfriendly.readthedocs.io/en/latest/#humanfriendly.format_timespanNếu bạn cần nhận được datetime. timegiá trị, bạn hoàn toàn có thể sử dụng thủ pháp này : my_time = ( datetime ( 1970,1,1 ) + timedelta ( seconds = my_seconds ) ). time ( )Bạn không hề thêm timedeltavào time, nhưng hoàn toàn có thể thêm nó vào datetime .
CẬP NHẬT : Một biến thể khác của cùng một kỹ thuật: my_time = (datetime.fromordinal(1) + timedelta(seconds=my_seconds)).time()
Thay vì 1bạn có thể sử dụng bất kỳ số nào lớn hơn 0. Ở đây chúng tôi sử dụng thực tế là datetime.fromordinalsẽ luôn trả về datetimeđối tượng có timethành phần bằng không.
Đây là cách tôi có nó. def sec2time ( sec, n_msec = 3 ) : ‘ ‘ ‘ Convert seconds to ‘ D days, HH : MM : SS.FFF ‘ ‘ ‘ ‘ if hasattr ( sec, ‘ __len__ ‘ ) : return [ sec2time ( s ) for s in sec ] m, s = divmod ( sec, 60 ) h, m = divmod ( m, 60 ) d, h = divmod ( h, 24 ) if n_msec > 0 : pattern = ‘ % % 02 d : % % 02 d : % % 0 % d. % df ‘ % ( n_msec + 3, n_msec ) else : pattern = r ‘ % 02 d : % 02 d : % 02 d ‘ if d = = 0 : return pattern % ( h, m, s ) return ( ‘ % d days, ‘ + pattern ) % ( d, h, m, s )Vài ví dụ : $ sec2time ( 10, 3 ) Out : ‘ 00:00:10. 000 ‘ $ sec2time ( 1234567.8910, 0 ) Out : ‘ 14 days, 06:56:07 ‘ $ sec2time ( 1234567.8910, 4 ) Out : ‘ 14 days, 06:56:07. 8910 ‘ $ sec2time ( [ 12, 345678.9 ], 3 ) Out : [ ‘ 00:00:12. 000 ‘, ‘ 4 days, 00:01:18. 900 ‘ ]Các bộ sau đây thao tác cho tôi. def sec_to_hours ( seconds ) : a = str ( seconds / / 3600 ) b = str ( ( seconds % 3600 ) / / 60 ) c = str ( ( seconds % 3600 ) % 60 ) d = [ ” { } hours { } mins { } seconds “. format ( a, b, c ) ] return d print ( sec_to_hours ( 10000 ) ) # [ ‘ 2 hours 46 mins 40 seconds ‘ ] print ( sec_to_hours ( 60 * 60 * 24 + 105 ) ) # [ ‘ 24 hours 1 mins 45 seconds ‘ ]dateutil. relativedeltathuận tiện nếu bạn cần truy vấn hàng giờ, phút và giây như phao. datetime. timedeltakhông phân phối một giao diện tương tự như. from dateutil.relativedelta import relativedelta rt = relativedelta ( seconds = 5440 ) print ( rt.seconds ) print ( ‘ { : 02 d } : { : 02 d } : { : 02 d } ‘. format ( int ( rt.hours ), int ( rt.minutes ), int ( rt.seconds ) ) )Bản in 40.001 : 30 : 40giờ ( h ) được tính bằng cách chia sàn ( bằng / / ) giây bằng 3600 ( 60 phút / giờ * 60 giây / phút )phút ( m ) được tính bằng cách chia tầng của những giây còn lại ( phần còn lại từ thống kê giám sát giờ, theo % ) cho 60 ( 60 giây / phút )tựa như, giây ( s ) bằng phần còn lại của giờ và phút giám sát .Phần còn lại chỉ là định dạng chuỗi ! def hms ( seconds ) : h = seconds / / 3600 m = seconds % 3600 / / 60 s = seconds % 3600 % 60 return ‘ { : 02 d } : { : 02 d } : { : 02 d } ‘. format ( h, m, s ) print ( hms ( 7500 ) ) # Should print 02 h05m00s
Bạn có thể chia giây cho 60 để có được số phút import time seconds = time.time()minutes = seconds / 60print(minutes)
Khi bạn chia nó cho 60 lần nữa, bạn sẽ nhận được số giờdivision = 3623 / / 3600 # to hoursdivision2 = 600 / / 60 # to minutesprint ( division ) # write hoursprint ( division2 ) # write minutesPS Mã của tôi không chuyên nghiệp
Video liên quan
Source: http://139.180.218.5
Category: tản mạn