datetime.datetime.fromtimestamp()
là chính xác, ngoại trừ bạn có thể có dấu thời gian tính bằng milisecond (như trong JavaScript), nhưng fromtimestamp()
mong đợi dấu thời gian Unix, tính bằng giây.
Làm như thế:
>>> import datetime
>>> your_timestamp = 1331856000000
>>> date = datetime.datetime.fromtimestamp(your_timestamp / 1e3)
và kết quả là:
>>> date
datetime.datetime(2012, 3, 16, 1, 0)
Nó có trả lời câu hỏi của bạn không?
EDIT : JF Sebastian đề nghị chính xác sử dụng phép chia thực sự theo 1e3
(float 1000
). Sự khác biệt là rất đáng kể, nếu bạn muốn có kết quả chính xác, do đó tôi đã thay đổi câu trả lời của mình. Kết quả khác biệt từ hành vi mặc định của Python 2.x, luôn trả về int
khi chia (sử dụng /
toán tử) int
cho int
(đây được gọi là phân chia sàn ). Bằng cách thay thế số chia 1000
(là một int
) bằng 1e3
số chia (là đại diện của 1000
float) hoặc bằng float(1000)
(hoặc 1000.
v.v.), phép chia trở thành phép chia thực sự . Python 2.x trả về float
khi chia int
cho float
, float
bởi int
,float
bởi float
v.v. Và khi có một phần phân số trong dấu thời gian được truyền cho fromtimestamp()
phương thức, kết quả của phương thức này cũng chứa thông tin về phần phân số đó (dưới dạng số micrô giây).
/ 1e3