Computer >> Máy Tính >  >> Lập trình >> Python

Làm cách nào để in ngày tháng ở định dạng thông thường trong Python?


Nếu bạn in ngày tháng trực tiếp bằng chức năng in, bạn sẽ nhận được ngày tháng bình thường,

Ví dụ

import datetime
today = datetime.date.today()
print(today)

Đầu ra

Bạn sẽ nhận được đầu ra -

2018-1-2

đó là chính xác những gì bạn muốn. Nhưng khi bạn nối nó vào một danh sách và sau đó cố gắng in nó ra,

Ví dụ

import datetime
my_list = []
today = datetime.date.today()
my_list.append(today)
print(my_list)

Đầu ra

Bạn sẽ nhận được đầu ra -

[datetime.date(2018, 1, 2)]

Điều này đang xảy ra bởi vì ngày giờ là các đối tượng. Do đó, khi bạn thao tác với chúng, bạn thao tác với các đối tượng, không phải chuỗi, không phải dấu thời gian hay bất cứ thứ gì. Bất kỳ đối tượng nào trong Python đều có HAI biểu diễn chuỗi. Biểu diễn thông thường được sử dụng bởi "print", có thể được sử dụng bằng cách sử dụng hàm str (). Cái này được triển khai bằng cách sử dụng hàm __str__ trong lớp cho đối tượng đó. Biểu diễn thay thế được sử dụng để biểu diễn bản chất đối tượng (như một dữ liệu). Nó có thể được sử dụng hàm repr ().

Vì vậy, để có được biểu diễn chính xác, bạn cần gọi str rõ ràng trên các đối tượng datetime của mình.

Ví dụ

import datetime
my_list = []
today = datetime.date.today()
my_list.append(str(today))
print(my_list)

Đầu ra

Bạn sẽ nhận được đầu ra -

['2018-01-02']