2010-07-13 49 views
5

Được ưu tiên hơn cái kia không? Nếu vậy, trong mọi trường hợp hoặc chỉ một vài?Sự khác biệt giữa struct_time và datetime là gì?

Tôi dự định sử dụng một số loại lớp ngày để giữ danh sách dài dữ liệu ngày và giờ, ví dụ: '2009-01-01 10:12:00'.

+0

Nếu bạn chạy "datetime nhập khẩu; datetime.datetime.today(); datetime.datetime.today(). Timetuple();" - trước đây là datetime, sau đó là struct_time. Giá trị dir() xung quanh giá trị sẽ làm lộ sự khác biệt về API - mặc dù điều này không trả lời cho câu hỏi của bạn. – Metalshark

+0

'datetime' dễ thay đổi hơn 'struct_time' là một kiểu dữ liệu không thay đổi như' tuple' (vì đó là những gì nó hiệu quả). – martineau

Trả lời

5

struct_time là cách cũ để biểu thị thời gian, được mô hình hóa sau thư viện chuẩn C. datetime đến sau, là nhiều pythonic, là tính năng hơn, và có hành vi dự đoán nhiều hơn trong các trường hợp cạnh hơn các hàm struct_time. Tôi sẽ sử dụng datetime ngoại trừ trong trường hợp hiếm hoi, nơi một sự khác biệt hiệu suất đo là đủ quan trọng cho vấn đề, hoặc nơi nó làm cho mã đáng kể ít có thể đọc được.

2

datetime định hướng đối tượng hơn và cung cấp nhiều tính năng tiện lợi, ví dụ: số học với timedelta -objects.

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