Hướng dẫn how do you convert time to seconds in python? - làm thế nào để bạn chuyển đổi thời gian thành giây trong python?

74

Mới! Lưu câu hỏi hoặc câu trả lời và sắp xếp nội dung yêu thích của bạn. Tìm hiểu thêm.
Learn more.

Tôi cần chuyển đổi các chuỗi giá trị thời gian được đưa ra ở định dạng sau thành vài giây, ví dụ:

1.'00:00:00,000' -> 0 seconds

2.'00:00:10,000' -> 10 seconds

3.'00:01:04,000' -> 64 seconds

4.'01:01:09,000' -> 3669 seconds

Tôi có cần sử dụng Regex để làm điều này không? Tôi đã cố gắng sử dụng mô -đun thời gian, nhưng

time.strptime('00:00:00,000','%I:%M:%S')

Ném:

ValueError: time data '00:00:00,000' does not match format '%I:%M:%S'

Chỉnh sửa::

Có vẻ như thế này:

from datetime import datetime
pt = datetime.strptime(timestring,'%H:%M:%S,%f')
total_seconds = pt.second + pt.minute*60 + pt.hour*3600

cho kết quả chính xác. Tôi chỉ sử dụng mô -đun sai.

Hướng dẫn how do you convert time to seconds in python? - làm thế nào để bạn chuyển đổi thời gian thành giây trong python?

Funnydman

7.0823 Huy hiệu vàng27 Huy hiệu bạc49 Huy hiệu đồng3 gold badges27 silver badges49 bronze badges

Hỏi ngày 19 tháng 5 năm 2012 lúc 8:43May 19, 2012 at 8:43

1

>>> import datetime
>>> import time
>>> x = time.strptime('00:01:00,000'.split(',')[0],'%H:%M:%S')
>>> datetime.timedelta(hours=x.tm_hour,minutes=x.tm_min,seconds=x.tm_sec).total_seconds()
60.0

Jojo

9.4782 Huy hiệu vàng48 Huy hiệu bạc69 Huy hiệu Đồng2 gold badges48 silver badges69 bronze badges

Đã trả lời ngày 19 tháng 5 năm 2012 lúc 9:07May 19, 2012 at 9:07

Burhan Khalidburhan KhalidBurhan Khalid

165K18 Huy hiệu vàng238 Huy hiệu bạc276 Huy hiệu Đồng18 gold badges238 silver badges276 bronze badges

Tôi nghĩ một chút pythonic hơn tôi sẽ là:

timestr = '00:04:23'

ftr = [3600,60,1]

sum([a*b for a,b in zip(ftr, map(int,timestr.split(':')))])

Đầu ra là 263sec.

Tôi sẽ quan tâm để xem liệu có ai có thể đơn giản hóa nó hơn nữa không.

Đã trả lời ngày 5 tháng 10 năm 2012 lúc 4:34Oct 5, 2012 at 4:34

user1721943user1721943user1721943

4394 Huy hiệu bạc3 Huy hiệu đồng4 silver badges3 bronze badges

3

mà không cần nhập khẩu

time = "01:34:11"
sum(x * int(t) for x, t in zip([3600, 60, 1], time.split(":"))) 

Đã trả lời ngày 20 tháng 12 năm 2016 lúc 22:56Dec 20, 2016 at 22:56

Thafritzthafritzthafritz

4391 Huy hiệu vàng6 Huy hiệu bạc8 Huy hiệu đồng1 gold badge6 silver badges8 bronze badges

2

Để có được

ValueError: time data '00:00:00,000' does not match format '%I:%M:%S'
0, bạn nên trừ
ValueError: time data '00:00:00,000' does not match format '%I:%M:%S'
1:

>>> from datetime import datetime
>>> datetime.strptime('01:01:09,000', '%H:%M:%S,%f')
datetime.datetime(1900, 1, 1, 1, 1, 9)
>>> td = datetime.strptime('01:01:09,000', '%H:%M:%S,%f') - datetime(1900,1,1)
>>> td
datetime.timedelta(0, 3669)
>>> td.total_seconds() # 2.7+
3669.0

ValueError: time data '00:00:00,000' does not match format '%I:%M:%S'
2 ở trên ngụ ý đầu vào ít hơn một ngày, để hỗ trợ chênh lệch thời gian hơn một ngày:

>>> import re
>>> from datetime import timedelta
>>> td = timedelta(**dict(zip("hours minutes seconds milliseconds".split(),
...                           map(int, re.findall('\d+', '31:01:09,000')))))
>>> td
datetime.timedelta(1, 25269)
>>> td.total_seconds()
111669.0

Để mô phỏng

ValueError: time data '00:00:00,000' does not match format '%I:%M:%S'
3 trên Python 2.6:

>>> from __future__ import division
>>> ((td.days * 86400 + td.seconds) * 10**6 + td.microseconds) / 10**6
111669.0

Đã trả lời ngày 12 tháng 9 năm 2015 lúc 12:00Sep 12, 2015 at 12:00

JFSJFSjfs

383K182 Huy hiệu vàng948 Huy hiệu bạc1619 Huy hiệu đồng182 gold badges948 silver badges1619 bronze badges

Có vẻ như bạn sẵn sàng tước các phân số của một giây ... Vấn đề là bạn không thể sử dụng '00' như giờ với

ValueError: time data '00:00:00,000' does not match format '%I:%M:%S'
4

time.strptime('00:00:00,000','%I:%M:%S')
0

Đã trả lời ngày 19 tháng 5 năm 2012 lúc 8:50May 19, 2012 at 8:50

Hướng dẫn how do you convert time to seconds in python? - làm thế nào để bạn chuyển đổi thời gian thành giây trong python?

Mike Penningtonmike PenningtonMike Pennington

41.1K19 Huy hiệu vàng134 Huy hiệu bạc172 Huy hiệu đồng19 gold badges134 silver badges172 bronze badges

time.strptime('00:00:00,000','%I:%M:%S')
1

Đã trả lời ngày 17 tháng 2 năm 2021 lúc 10:53Feb 17, 2021 at 10:53

PiotrpiotrPiotr

1.65716 huy hiệu bạc23 Huy hiệu đồng16 silver badges23 bronze badges

1

Luôn có phân tích cú pháp bằng tay

time.strptime('00:00:00,000','%I:%M:%S')
2

Đã trả lời ngày 19 tháng 5 năm 2012 lúc 8:54May 19, 2012 at 8:54

Nick Craig-Woodnick Craig-WoodNick Craig-Wood

51.7K12 Huy hiệu vàng122 Huy hiệu bạc129 Huy hiệu đồng12 gold badges122 silver badges129 bronze badges

1

time.strptime('00:00:00,000','%I:%M:%S')
3

Kết quả: 3.0

Đã trả lời ngày 30 tháng 8 năm 2018 lúc 21:03Aug 30, 2018 at 21:03

Lấy cảm hứng từ bình luận của Sverrir-Sigmundarson:

time.strptime('00:00:00,000','%I:%M:%S')
4

Đã trả lời ngày 6 tháng 5 năm 2019 lúc 10:13May 6, 2019 at 10:13

YscharfyscharfYScharf

1.1959 huy hiệu bạc15 huy hiệu đồng9 silver badges15 bronze badges

ValueError: time data '00:00:00,000' does not match format '%I:%M:%S'
3 dường như rất đơn giản.straightforward.

time.strptime('00:00:00,000','%I:%M:%S')
5

Đã trả lời ngày 13 tháng 1 lúc 13:36Jan 13 at 13:36

Hướng dẫn how do you convert time to seconds in python? - làm thế nào để bạn chuyển đổi thời gian thành giây trong python?

Reda el hailreda el hailReda El Hail

8581 Huy hiệu vàng6 Huy hiệu bạc15 Huy hiệu đồng1 gold badge6 silver badges15 bronze badges

time.strptime('00:00:00,000','%I:%M:%S')
6

Đã trả lời ngày 20 tháng 9 năm 2020 lúc 22:15Sep 20, 2020 at 22:15

Hướng dẫn how do you convert time to seconds in python? - làm thế nào để bạn chuyển đổi thời gian thành giây trong python?

DawedaweDaWe

1.16014 Huy hiệu bạc20 Huy hiệu đồng14 silver badges20 bronze badges

Giải pháp động cho HH: MM: SS và MM: SS. Nếu bạn muốn xử lý một lệnh, hãy sử dụng

ValueError: time data '00:00:00,000' does not match format '%I:%M:%S'
6 chia cho 1000 hoặc một cái gì đó và sau đó thêm.

time.strptime('00:00:00,000','%I:%M:%S')
7

Đã trả lời ngày 17 tháng 4 năm 2021 lúc 17:55Apr 17, 2021 at 17:55

Hướng dẫn how do you convert time to seconds in python? - làm thế nào để bạn chuyển đổi thời gian thành giây trong python?

ElijahelijahElijah

1.52817 Huy hiệu bạc22 Huy hiệu đồng17 silver badges22 bronze badges

Tại sao không sử dụng

ValueError: time data '00:00:00,000' does not match format '%I:%M:%S'
7?

time.strptime('00:00:00,000','%I:%M:%S')
8

Một chức năng, hoạt động trên

ValueError: time data '00:00:00,000' does not match format '%I:%M:%S'
8,
ValueError: time data '00:00:00,000' does not match format '%I:%M:%S'
9 hoặc
from datetime import datetime
pt = datetime.strptime(timestring,'%H:%M:%S,%f')
total_seconds = pt.second + pt.minute*60 + pt.hour*3600
0. Nếu bạn sử dụng
from datetime import datetime
pt = datetime.strptime(timestring,'%H:%M:%S,%f')
total_seconds = pt.second + pt.minute*60 + pt.hour*3600
1 thay vì
from datetime import datetime
pt = datetime.strptime(timestring,'%H:%M:%S,%f')
total_seconds = pt.second + pt.minute*60 + pt.hour*3600
2 cho dấu hiệu thập phân, nó thậm chí còn đơn giản hơn:

time.strptime('00:00:00,000','%I:%M:%S')
9

Đã trả lời ngày 10 tháng 6 năm 2021 lúc 23:32Jun 10, 2021 at 23:32

Hướng dẫn how do you convert time to seconds in python? - làm thế nào để bạn chuyển đổi thời gian thành giây trong python?

Tianyi Shitianyi ShiTianyi Shi

7218 Huy hiệu bạc12 Huy hiệu đồng8 silver badges12 bronze badges

Làm thế nào để bạn chuyển đổi thời gian thành giây?

Nhân số giờ với 60 để chuyển đổi nó thành phút, tức là, 1 giờ × 60 = 60 phút.Nhân số phút với 60 để có được số giây, tức là, 60 phút × 60 = 3600 giây.Multiply the minutes by 60 to obtain the number of seconds, i.e., 60 minutes × 60 = 3600 seconds .

Làm thế nào để bạn chuyển đổi thời gian trong Python?

Có hai chức năng thời gian Python mà bạn sử dụng để chuyển đổi thời gian.struct_time đối tượng cho một chuỗi: asctime ()..
%D: Ngày của tháng ..
%M: Tháng trong năm ..
%Y: năm ..

Làm thế nào để bạn tính toán thứ hai trong Python?

Mô -đun thời gian Python chứa thời gian.hàm strftime () để hiển thị dấu thời gian dưới dạng chuỗi ở định dạng được chỉ định bằng cách truyền mã định dạng dưới dạng đối số.Hàm thời gian.gmtime () được sử dụng để chuyển đổi giá trị được truyền sang hàm thành giây.time. gmtime() function is used to convert the value passed to the function into seconds.

Làm cách nào để chuyển đổi giờ vài phút từ giây theo thời gian trong Python?

Để có được thời gian hiện tại, bạn có thể sử dụng phương thức strftime () và chuyển vào đó, chuỗi Chuỗi%H:%M:%S, đại diện cho giờ, phút và giây.use the strftime() method and pass into it the string ”%H:%M:%S” representing hours, minutes, and seconds.