2015-09-09 16 views
43

Tôi đang sử dụng:Bắt ngày hôm nay trong YYYY-MM-DD bằng Python?

str(datetime.datetime.today()).split()[0] 

trở lại ngày hôm nay theo hình thức YYYY-MM-DD.

Có cách nào ít thô lỗ hơn để đạt được điều này không?

+2

Ý anh là gì với "thô" ? – Gombat

+1

có lẽ đây? \ n now = datetime.datetime.now() \ n str (now.strftime ("Y-% m-% d") – Gombat

+0

@Gombat Ý tôi là theo kinh nghiệm của tôi, thường có cách xây dựng điều chúng tôi muốn trong Python mà không cần phải chia, chỉ mục, concat, tham gia, vv – Pyderman

Trả lời

104

Bạn có thể sử dụng strftime:

datetime.datetime.today().strftime('%Y-%m-%d') 
+0

Một dòng như 'str (datetime.datetime.today(). year) +" - "+ str (datetime.datetime.today() .month) + "-" + str (datetime.datetime.today(). day) 'work? Đó là một câu hỏi ngớ ngẩn, vì nó xuất ra với các chữ số tháng/ngày.: P – ZeBirdeh

+2

Có, nhưng với strftime là dễ nhất. – diegueus9

+0

Bạn có thể làm: datetime.datatime.today(). Strftime ('% Y -% - m -% - d') – diegueus9

15

Datetime chỉ là đáng yêu nếu bạn thích ghi nhớ mã buồn cười. Bạn sẽ không thích sự đơn giản?

>>> import arrow 
>>> arrow.now().format('YYYY-MM-DD') 
'2017-02-17' 

Mô-đun này đủ thông minh để hiểu bạn là gì.

Chỉ cần làm pip install arrow.

3

Có cách đơn giản hơn câu trả lời được chấp nhận; hợp lệ cả hai cho Python 2 & 3.

from datetime import date 
today = str(date.today()) 
print(today) # '2017-12-26' 
+0

Có thể thay đổi dấu phân cách thành '/' không? –

+1

@StevenVascellaro nó sẽ là 'date.today(). Strftime ('% Y /% m /% d')' – kmonsoor

+0

@StevenVascellaro Ý tưởng tồi. Người đọc thường giả định dấu phân tách '.' thành 'D.M.Y', dấu tách'/'thành' M/D/Y' và dấu phân cách '-' thành' Y-M-D'. Mặc dù không phải ai cũng làm theo các hướng dẫn này, nó sẽ giúp đọc ngày quốc tế miễn là không phải ai cũng đã chuyển sang 'Y-M-D'. – glglgl

0

Tôi thích điều này. (Vì đây là đơn giản. Nhưng có lẽ bằng cách nào đó không hiệu quả và lỗi. Bởi vì bạn phải kiểm tra mã lối ra của lệnh shell nếu bạn muốn rất mạnh chương trình lỗi bằng chứng.)

os.system('date +%Y-%m-%d') 
Các vấn đề liên quan