2012-05-16 39 views
13

Tôi có một số tệp nhật ký theo thời gian theo định dạng HH: MM :: SS.nano_seconds (ví dụ: 01: 02: 03.123456789). Tôi muốn tạo ra một datetime trong python để tôi có thể làm gọn gàng toán học vào thời gian đó (ví dụ như chênh lệch thời gian). strptime hoạt động tốt cho micro giây bằng% f. Các mô-đun datetime và thời gian của Python có thực sự không hỗ trợ nano giây không?Phân tích chuỗi ngày tháng có chứa nano giây

+0

bản sao có thể có của [Nhận thời gian POSIX/Unix tính bằng giây và nano giây bằng Python?] (Http://stackoverflow.com/questions/2394485/get-posix-unix-time-in-seconds-and-nanoseconds-in -python) –

+0

@MikePennington Câu hỏi đó đề cập đến việc nhận được thời gian đồng hồ với nano giây, không phân tích cú pháp chúng và làm toán trên chúng độc lập với đồng hồ thực tế. – Dougal

+0

@Dougal, câu hỏi rất phù hợp vì chúng chỉ ra rằng độ chính xác thời gian nano giây yêu cầu hỗ trợ nền tảng, và hầu hết thì không. Trong câu hỏi đó, định dạng chuỗi nano giây cũng được thảo luận là –

Trả lời

13

Bạn có thể thấy from the source rằng đối tượng ngày giờ không hỗ trợ bất kỳ điều gì tốt hơn micro giây. Như được chỉ ra bởi Mike Pennington trong các ý kiến, điều này là bởi vì actual hardware clocks aren't nearly that precise. Wikipedia nói rằng HPET có tần số "ít nhất 10 MHz", có nghĩa là một đánh dấu trên 100 nano giây.

Nếu bạn có thể sống bằng cách ném ba chữ số cuối cùng (có thể không quá có ý nghĩa), bạn có thể phân tích cú pháp này bằng cách chỉ cắt chuỗi đầu vào để chỉ có sáu chữ số sau dấu thập phân và phân tích cú pháp với %f. Nếu không, có vẻ như bạn sẽ phải tự thực hiện phép trừ.

+0

Cảm ơn. Đó là những gì tôi nghi ngờ. – user1332148

+9

Đồng hồ hệ thống không phải là nguồn duy nhất của thời gian người ta có thể muốn sử dụng datetime và timedelta với. Đó là gây phiền nhiễu (giáp với thành kiến ​​dị ứng) rằng chúng không được thực hiện bằng cách sử dụng nsecs thay vì usecs. – travc

+3

@travc: Có vấn đề CPython mở: [mô-đun datetime không có hỗ trợ cho nano giây] (https://bugs.python.org/issue15443) – jfs

Các vấn đề liên quan