Tôi có một chương trình (sar command line utility) xuất ra các dòng của nó với cột thời gian. Tôi phân tích cú pháp tệp này bằng tập lệnh python của tôi và tôi muốn chuyển đổi 02:31:33 PM
của sar thành epochs, ví dụ: 1377181906
(năm, tháng và ngày hiện tại với giờ, phút và giây từ chuỗi trên). Làm thế nào điều này có thể thực hiện theo một cách ít cồng kềnh? Tôi đã cố gắng làm điều này một mình, nhưng bị mắc kẹt với thời gian/datetime và đàn của các phương pháp của họ.Làm cách nào để chuyển đổi chuỗi HH: MM: SS thành thời gian thời gian UNIX?
6
A
Trả lời
8
Dưới đây là một cách để làm điều đó:
- đọc chuỗi thành datetime sử dụng
strptime
- bộ năm, tháng, ngày của đối tượng datetime sang năm, tháng ngày hiện tại và ngày qua
replace
- chuyển đổi datetime thành dấu thời gian unix qua
calendar.timegm
>>> from datetime import datetime
>>> import calendar
>>> dt = datetime.strptime("02:31:33 PM", "%I:%M:%S %p")
>>> dt_now = datetime.now()
>>> dt = dt.replace(year=dt_now.year, month=dt_now.month, day=dt_now.day)
>>> calendar.timegm(dt.utctimetuple())
1377138693
Lưu ý rằng trong python> = 3.3, bạn có thể lấy dấu thời gian từ một ngày giờ bằng cách gọi dt.timestamp().
Xem thêm:
2
Một cách khác để có thời gian kỷ nguyên là sử dụng mktime từ mô-đun thời gian và vượt qua thời gian tuple trong ngày, vì vậy bạn có thể làm điều này:
>>> from datetime import datetime
>>> from time import mktime
>>> dt = datetime.strptime("02:31:33 PM", "%H:%M:%S %p")
>>> dt_now = datetime.now()
>>> dt = dt.replace(year=dt_now.year, month=dt_now.month, day=dt_now.day)
>>> int(mktime(dt.timetuple()))
1377131493
Các vấn đề liên quan
- 1. Mẫu regex cho HH: MM: Chuỗi thời gian SS
- 2. Cách chuyển đổi số thập phân thành thời gian, ví dụ: HH: MM: SS
- 3. Cách chuyển đổi ngày theo định dạng "YYYY-MM-DD hh: mm: ss" sang dấu thời gian UNIX
- 4. Thời gian chuyển đổi (YYYY-MM-DD-HH: MM: SS) ngày
- 5. Chuyển đổi dấu thời gian trong Oracle cho YYYY-MM-DD HH: Định dạng MM: SS
- 6. Chương trình chuyển đổi thời gian tính bằng giây thành hh: mm: ss format
- 7. Nhận thời gian hiện tại dưới dạng chuỗi YYYY-MM-DD-HH-MM-SS
- 8. Làm cách nào để chuyển đổi hh: mm: ss thành hh: mm trong SQL Server?
- 9. Làm thế nào để chuyển đổi một số nguyên (thời gian) thành HH: MM: SS :: 00 trong SQL Server 2008?
- 10. Thời gian thành chuỗi với HH: Định dạng MM: SS (lập trình C)
- 11. Cách định dạng thời gian thành HH: MM: SS trong datalabel
- 12. Làm cách nào để chuyển đổi hh: mm: ss.000 thành mili giây trong Excel?
- 13. C# Cách chuyển đổi Environment.TickCount thành HH: mm: ss: ms
- 14. WPF DataGrid thời gian định dạng lĩnh vực hh: mm
- 15. chuyển đổi XMLGregorianCalendar thành ngày có nghĩa là "MM/DD/YYYY hh: mm: ss AM"
- 16. Làm thế nào để chuyển đổi thời gian epoch Unix trong sqlite
- 17. Thời gian hiện tại ở định dạng HH: MM: SS am/pm?
- 18. Chuyển đổi giá trị khoảng thời gian thành định dạng "hh: mm Am/Pm" bằng C#
- 19. Làm cách nào để chuyển đổi HH: MM: SS thành giây chỉ bằng C# .net?
- 20. Chuyển đổi ngày thành dấu thời gian UNIX
- 21. Hiển thị thời gian hiện tại theo định dạng sau: HH: mm: ss
- 22. Chuyển đổi thời gian Unix bằng PowerShell
- 23. Ruby: chuyển đổi dấu thời gian unix thành ngày
- 24. MySQL chuyển đổi ngày giờ thành dấu thời gian Unix
- 25. Ruby/Rails: chuyển đổi ngày thành dấu thời gian UNIX
- 26. chuyển đổi dấu thời gian unix thành dấu thời gian H2
- 27. PostgreSQL - Cách chuyển đổi giây trong trường số thành HH: MM: SS
- 28. Lấy thời gian từ MySQL dưới dạng HH: MM
- 29. Chuyển đổi dấu thời gian unix thành julian
- 30. Chuyển đổi thời gian Unix trong C#
http://stackoverflow.com/questions/466345/converting-string-into-datetime – Doon
Không hoàn toàn lừa đảo e, vì tôi không có năm/ngày/tháng. Tôi ** có thể ** sử dụng 'strptime' nhưng nó sẽ khởi tạo các giá trị còn thiếu vào 1 tháng 1 năm 1900. Tôi có thể lấy các giá trị bị thiếu bởi chính mình và nối chúng vào chuỗi, nhưng điều này nằm trong thể loại * rườm rà *. –
có, do đó lý do tôi đã không đánh dấu nó là dupe/vote để đóng. Strptime là cách tôi sẽ làm điều đó (tôi chỉ cần đặt ngày/giờ cho đến bây giờ, và sau đó phân tích cú pháp giống như @alecxe đang làm .. – Doon