2010-03-11 40 views

Trả lời

51
datetime.datetime(year, 1, 1) + datetime.timedelta(days - 1) 
+2

thế nào là này đơn giản hơn câu trả lời SilentGhost không? – GreenMatt

+1

@GreenMatt: Nó không liên quan đến việc đưa các số vào một chuỗi và sau đó phân tích chuỗi đó. –

+2

Điều này thực sự có ý nghĩa đối với Mino; Tôi đoán tôi nên đặt "@Mino" trong bình luận, xin lỗi. Đúng là phương pháp này không yêu cầu chuyển đổi số thành một chuỗi; tuy nhiên, trong kinh nghiệm của tôi, bạn ít nhất cũng có khả năng bắt đầu bằng một chuỗi. Hơn thế nữa, hai cuộc gọi và một phép toán số học phức tạp hơn một IMO cuộc gọi đơn lẻ. (Cấp, số lượng cuộc gọi sẽ phụ thuộc vào bất kỳ chuyển đổi nào cần thiết.) – GreenMatt

20
>>> import datetime 
>>> datetime.datetime.strptime('2010 120', '%Y %j') 
datetime.datetime(2010, 4, 30, 0, 0) 
>>> _.strftime('%d/%m/%Y') 
'30/04/2010' 
7

Các toordinal()fromordinal() chức năng của lớp date có thể được sử dụng:

from datetime import date 
date.fromordinal(date(year, 1, 1).toordinal() + days - 1) 
Các vấn đề liên quan