Trong bài viết này, bạn sẽ học cách có được ngày và giờ hiện tại ngày hôm nay ở Python. Chúng tôi cũng sẽ định dạng ngày và giờ ở các định dạng khác nhau bằng phương thức strftime [].
Video: Ngày và giờ ở Python
Có một số cách bạn có thể thực hiện để có được ngày hiện tại. Chúng tôi sẽ sử dụng lớp
d1 = 16/09/2019 d2 = September 16, 2019 d3 = 09/16/19 d4 = Sep-16-20192 của mô -đun DateTime để hoàn thành nhiệm vụ này.
Ví dụ 1: Python Nhận ngày hôm nay
from datetime import date
today = date.today[]
print["Today's date:", today]
Ở đây, chúng tôi đã nhập lớp
d1 = 16/09/2019 d2 = September 16, 2019 d3 = 09/16/19 d4 = Sep-16-20192 từ mô -đun
d1 = 16/09/2019 d2 = September 16, 2019 d3 = 09/16/19 d4 = Sep-16-20194. Sau đó, chúng tôi đã sử dụng phương pháp
d1 = 16/09/2019 d2 = September 16, 2019 d3 = 09/16/19 d4 = Sep-16-20195 để có được ngày địa phương hiện tại.
Nhân tiện,
d1 = 16/09/2019 d2 = September 16, 2019 d3 = 09/16/19 d4 = Sep-16-20195 trả về một đối tượng
d1 = 16/09/2019 d2 = September 16, 2019 d3 = 09/16/19 d4 = Sep-16-20192, được gán cho biến ngày nay trong chương trình trên. Bây giờ, bạn có thể sử dụng phương thức strftime [] để tạo một chuỗi đại diện ở các định dạng khác nhau.
Ví dụ 2: Ngày hiện tại ở các định dạng khác nhau
from datetime import date
today = date.today[]
# dd/mm/YY
d1 = today.strftime["%d/%m/%Y"]
print["d1 =", d1]
# Textual month, day and year
d2 = today.strftime["%B %d, %Y"]
print["d2 =", d2]
# mm/dd/y
d3 = today.strftime["%m/%d/%y"]
print["d3 =", d3]
# Month abbreviation, day and year
d4 = today.strftime["%b-%d-%Y"]
print["d4 =", d4]
Khi bạn chạy chương trình, đầu ra sẽ giống như:
d1 = 16/09/2019 d2 = September 16, 2019 d3 = 09/16/19 d4 = Sep-16-2019
Nếu bạn cần có được ngày và giờ hiện tại, bạn có thể sử dụng lớp
d1 = 16/09/2019 d2 = September 16, 2019 d3 = 09/16/19 d4 = Sep-16-20194 của mô -đun
d1 = 16/09/2019 d2 = September 16, 2019 d3 = 09/16/19 d4 = Sep-16-20194.
Ví dụ 3: Nhận ngày và giờ hiện tại
from datetime import datetime
# datetime object containing current date and time
now = datetime.now[]
print["now =", now]
# dd/mm/YY H:M:S
dt_string = now.strftime["%d/%m/%Y %H:%M:%S"]
print["date and time =", dt_string]
Bạn sẽ cổng đầu ra như dưới đây.
now = 2021-06-25 07:58:56.550604 date and time = 25/06/2021 07:58:56
Ở đây, chúng tôi đã sử dụng
from datetime import datetime
# datetime object containing current date and time
now = datetime.now[]
print["now =", now]
# dd/mm/YY H:M:S
dt_string = now.strftime["%d/%m/%Y %H:%M:%S"]
print["date and time =", dt_string]
0 để có được ngày và giờ hiện tại. Sau đó, chúng tôi đã sử dụng from datetime import datetime
# datetime object containing current date and time
now = datetime.now[]
print["now =", now]
# dd/mm/YY H:M:S
dt_string = now.strftime["%d/%m/%Y %H:%M:%S"]
print["date and time =", dt_string]
1 để tạo một chuỗi biểu diễn ngày và thời gian ở định dạng khác. Nhiều dấu thời gian có một múi giờ ngụ ý. Để đảm bảo rằng mã của bạn sẽ hoạt động trong mỗi múi giờ, bạn nên sử dụng UTC trong nội bộ và đính kèm múi giờ mỗi khi một đối tượng nước ngoài vào hệ thống.
Python 3.2+:
>>> datetime.datetime.strptime[
... "March 5, 2014, 20:13:50", "%B %d, %Y, %H:%M:%S"
... ].replace[tzinfo=datetime.timezone[datetime.timedelta[hours=-3]]]
Điều này giả định bạn biết sự bù đắp. Nếu bạn không, nhưng bạn biết, ví dụ: Vị trí, bạn có thể sử dụng gói
from datetime import datetime
# datetime object containing current date and time
now = datetime.now[]
print["now =", now]
# dd/mm/YY H:M:S
dt_string = now.strftime["%d/%m/%Y %H:%M:%S"]
print["date and time =", dt_string]
2 để truy vấn cơ sở dữ liệu múi giờ IANA cho phần bù. Tôi sẽ sử dụng Tehran ở đây làm ví dụ vì nó có phần bù nửa giờ:>>> tehran = pytz.timezone["Asia/Tehran"]
>>> local_time = tehran.localize[
... datetime.datetime.strptime["March 5, 2014, 20:13:50",
... "%B %d, %Y, %H:%M:%S"]
... ]
>>> local_time
datetime.datetime[2014, 3, 5, 20, 13, 50, tzinfo=]
Như bạn có thể thấy,
from datetime import datetime
# datetime object containing current date and time
now = datetime.now[]
print["now =", now]
# dd/mm/YY H:M:S
dt_string = now.strftime["%d/%m/%Y %H:%M:%S"]
print["date and time =", dt_string]
2 đã xác định rằng phần bù là +3: 30 vào ngày cụ thể đó. Bây giờ bạn có thể chuyển đổi điều này thành thời gian UTC và nó sẽ áp dụng phần bù:>>> utc_time = local_time.astimezone[pytz.utc]
>>> utc_time
datetime.datetime[2014, 3, 5, 16, 43, 50, tzinfo=]
Lưu ý rằng ngày trước khi áp dụng thời gian sẽ mang lại cho bạn sự bù đắp kỳ lạ. Điều này là do IANA đã quyết định sử dụng thời gian trung bình địa phương:
>>> chicago = pytz.timezone["America/Chicago"]
>>> weird_time = chicago.localize[
... datetime.datetime.strptime["November 18, 1883, 11:00:00",
... "%B %d, %Y, %H:%M:%S"]
... ]
>>> weird_time.astimezone[pytz.utc]
datetime.datetime[1883, 11, 18, 7, 34, tzinfo=]
"7 giờ 34 phút" kỳ lạ có nguồn gốc từ kinh độ của Chicago. Tôi đã sử dụng dấu thời gian này vì nó là đúng trước khi thời gian tiêu chuẩn được áp dụng ở Chicago.
Chúng ta có thể chuyển đổi một chuỗi thành DateTime bằng hàm
from datetime import datetime
# datetime object containing current date and time
now = datetime.now[]
print["now =", now]
# dd/mm/YY H:M:S
dt_string = now.strftime["%d/%m/%Y %H:%M:%S"]
print["date and time =", dt_string]
4. Hàm này có sẵn trong các mô -đun DateTime và Time để phân tích một chuỗi vào các đối tượng DateTime và thời gian tương ứng.Python Strptime []
Python strptime [] là một phương thức lớp trong lớp DateTime. Cú pháp của nó là:
datetime.strptime[date_string, format]
Cả hai đối số là bắt buộc và nên là chuỗi. Hàm này hoàn toàn trái ngược với hàm strftime [], chuyển đổi đối tượng DateTime thành một chuỗi. Chúng tôi cũng có sẵn chức năng tương tự trong mô -đun thời gian, trong đó cú pháp của nó là:
from datetime import date
today = date.today[]
# dd/mm/YY
d1 = today.strftime["%d/%m/%Y"]
print["d1 =", d1]
# Textual month, day and year
d2 = today.strftime["%B %d, %Y"]
print["d2 =", d2]
# mm/dd/y
d3 = today.strftime["%m/%d/%y"]
print["d3 =", d3]
# Month abbreviation, day and year
d4 = today.strftime["%b-%d-%Y"]
print["d4 =", d4]
0Ở đây hàm trả về đối tượng
from datetime import datetime
# datetime object containing current date and time
now = datetime.now[]
print["now =", now]
# dd/mm/YY H:M:S
dt_string = now.strftime["%d/%m/%Y %H:%M:%S"]
print["date and time =", dt_string]
5. Nếu chuỗi định dạng không được cung cấp, nó mặc định là %A %b %d %h: %m: %s %y, phù hợp với định dạng được trả về bởi hàm ctime []. Nếu chuỗi đầu vào không thể được phân tích cú pháp theo định dạng được cung cấp, thì from datetime import datetime
# datetime object containing current date and time
now = datetime.now[]
print["now =", now]
# dd/mm/YY H:M:S
dt_string = now.strftime["%d/%m/%Y %H:%M:%S"]
print["date and time =", dt_string]
6 sẽ được nâng lên. Thông điệp ngoại lệ cung cấp chi tiết rõ ràng về vấn đề phân tích cú pháp.Python Strptime [] định dạng chỉ thị
Bảng sau chứa hầu hết các chỉ thị định dạng thường được sử dụng.
%một | Ngày trong tuần là tên viết tắt địa phương. | Mặt trời, mon, xông, sat [en_us] Vì vậy, mo, triệt, sa [de_de] |
%MỘT | Ngày trong tuần là tên đầy đủ của địa phương. | Chủ nhật, Thứ Hai,, Thứ Bảy [EN_US] Sonntag, Montag, Mạnh, Samstag [de_de] |
%w | Ngày trong tuần là một số thập phân, trong đó 0 là Chủ nhật và 6 là thứ bảy. | 0, 1, 2, 3, 4, 5, 6 |
%d | Ngày trong tháng dưới dạng số thập phân số không. | 01, 02,…, 31 |
%b | Tháng là tên địa phương viết tắt tên. | Jan, tháng 2, xông, tháng 12 [en_us] tháng 1, tháng 2, |
%B | Tháng dưới dạng tên đầy đủ của địa phương. | Tháng 1, tháng 2,,, tháng 12 [en_us] Januar, Februar, xông, Dezember [de_de] |
%m | Tháng dưới dạng số thập phân bằng không. | 01, 02… 12 |
%y | Năm không có thế kỷ như một số thập phân số không. | 01, 02, 99 99 |
%Y | Năm với thế kỷ như một số thập phân. | 0001, 0002, xông, 9999 |
%H | Giờ [đồng hồ 24 giờ] là một số thập phân bằng không. | 01, 02, xông, 23 |
%TÔI | Giờ [đồng hồ 12 giờ] là một số thập phân bằng không. | 01, 02,…, 12 |
%P | Locale từ tương đương với AM hoặc PM. | AM, pm [en_us] AM, pm [de_de] |
%M | Phút như một số thập phân bằng không. | 01, 02, xông, 59 |
%S | Thứ hai là một số thập phân bằng không. | 01, 02, xông, 59 |
%S | Thứ hai là một số thập phân bằng không. | %f |
Microsecond như một số thập phân, không được dán bên trái. | 000000, 000001, xông, 999999 Không áp dụng với mô -đun thời gian. | %z |
UTC bù ở dạng ± hhmm [ss] [chuỗi trống nếu đối tượng là ngây thơ]. | [trống], +0000, -0400, +1030 | %Z |
Tên múi giờ [chuỗi trống nếu đối tượng là ngây thơ]. | [trống], UTC, IST, CST | %j |
Ngày trong năm dưới dạng số thập phân không có viền. | 001, 002, xông, 366 | %U |
Số tuần của năm [Chủ nhật là ngày đầu tiên trong tuần] là số thập phân số không có đệm. Tất cả các ngày trong một năm mới trước Chủ nhật đầu tiên được coi là vào tuần 0. | 00, 01, xông, 53 | %U |
Số tuần của năm [Chủ nhật là ngày đầu tiên trong tuần] là số thập phân số không có đệm. Tất cả các ngày trong một năm mới trước Chủ nhật đầu tiên được coi là vào tuần 0. | 00, 01, xông, 53 | %W |
Số tuần của năm [thứ Hai là ngày đầu tiên trong tuần] là một số thập phân. Tất cả các ngày trong một năm mới trước ngày thứ Hai đầu tiên được coi là vào tuần 0. | %c | Đại diện ngày và thời gian thích hợp của địa phương. |
Tue ngày 16 tháng 8 21:30:00 1988 [EN_US] DI 16 tháng 8 21:30:00 1988 [de_de] | %x | Đại diện ngày thích hợp của địa phương. |
16/08/88 [Không có] 08/16/1988 [EN_US] 16.08.1988 [DE_DE] | %X | Đại diện thời gian thích hợp của địa phương. |
21:30:00 [EN_US] 21:30:00 [DE_DE]
%%
Một nhân vật ‘%theo nghĩa đen.
from datetime import date
today = date.today[]
# dd/mm/YY
d1 = today.strftime["%d/%m/%Y"]
print["d1 =", d1]
# Textual month, day and year
d2 = today.strftime["%B %d, %Y"]
print["d2 =", d2]
# mm/dd/y
d3 = today.strftime["%m/%d/%y"]
print["d3 =", d3]
# Month abbreviation, day and year
d4 = today.strftime["%b-%d-%Y"]
print["d4 =", d4]
1Output:
from datetime import date
today = date.today[]
# dd/mm/YY
d1 = today.strftime["%d/%m/%Y"]
print["d1 =", d1]
# Textual month, day and year
d2 = today.strftime["%B %d, %Y"]
print["d2 =", d2]
# mm/dd/y
d3 = today.strftime["%m/%d/%y"]
print["d3 =", d3]
# Month abbreviation, day and year
d4 = today.strftime["%b-%d-%Y"]
print["d4 =", d4]
2Phần trăm
Python Strptime [] ví dụ
from datetime import date
today = date.today[]
# dd/mm/YY
d1 = today.strftime["%d/%m/%Y"]
print["d1 =", d1]
# Textual month, day and year
d2 = today.strftime["%B %d, %Y"]
print["d2 =", d2]
# mm/dd/y
d3 = today.strftime["%m/%d/%y"]
print["d3 =", d3]
# Month abbreviation, day and year
d4 = today.strftime["%b-%d-%Y"]
print["d4 =", d4]
3Output:
from datetime import date
today = date.today[]
# dd/mm/YY
d1 = today.strftime["%d/%m/%Y"]
print["d1 =", d1]
# Textual month, day and year
d2 = today.strftime["%B %d, %Y"]
print["d2 =", d2]
# mm/dd/y
d3 = today.strftime["%m/%d/%y"]
print["d3 =", d3]
# Month abbreviation, day and year
d4 = today.strftime["%b-%d-%Y"]
print["d4 =", d4]
4Hãy cùng xem xét một số ví dụ cụ thể về hàm strptime [] để chuyển đổi chuỗi thành các đối tượng DateTime và thời gian.
Chuỗi thành DateTime
from datetime import date
today = date.today[]
# dd/mm/YY
d1 = today.strftime["%d/%m/%Y"]
print["d1 =", d1]
# Textual month, day and year
d2 = today.strftime["%B %d, %Y"]
print["d2 =", d2]
# mm/dd/y
d3 = today.strftime["%m/%d/%y"]
print["d3 =", d3]
# Month abbreviation, day and year
d4 = today.strftime["%b-%d-%Y"]
print["d4 =", d4]
5Output:
from datetime import date
today = date.today[]
# dd/mm/YY
d1 = today.strftime["%d/%m/%Y"]
print["d1 =", d1]
# Textual month, day and year
d2 = today.strftime["%B %d, %Y"]
print["d2 =", d2]
# mm/dd/y
d3 = today.strftime["%m/%d/%y"]
print["d3 =", d3]
# Month abbreviation, day and year
d4 = today.strftime["%b-%d-%Y"]
print["d4 =", d4]
6Chuỗi cho đến ngày đối tượng
Chúng ta có thể sử dụng hàm date [] cùng với hàm strptime [] để chuyển đổi chuỗi thành đối tượng ngày.
from datetime import date
today = date.today[]
# dd/mm/YY
d1 = today.strftime["%d/%m/%Y"]
print["d1 =", d1]
# Textual month, day and year
d2 = today.strftime["%B %d, %Y"]
print["d2 =", d2]
# mm/dd/y
d3 = today.strftime["%m/%d/%y"]
print["d3 =", d3]
# Month abbreviation, day and year
d4 = today.strftime["%b-%d-%Y"]
print["d4 =", d4]
7Output:
from datetime import date
today = date.today[]
# dd/mm/YY
d1 = today.strftime["%d/%m/%Y"]
print["d1 =", d1]
# Textual month, day and year
d2 = today.strftime["%B %d, %Y"]
print["d2 =", d2]
# mm/dd/y
d3 = today.strftime["%m/%d/%y"]
print["d3 =", d3]
# Month abbreviation, day and year
d4 = today.strftime["%b-%d-%Y"]
print["d4 =", d4]
8Ví dụ về ValueError của Python Strptime []
Chúng ta có thể sử dụng khối Excet Try-Except để bắt giải phân tích ngoại lệ và thực hiện các hành động khắc phục.
from datetime import date
today = date.today[]
# dd/mm/YY
d1 = today.strftime["%d/%m/%Y"]
print["d1 =", d1]
# Textual month, day and year
d2 = today.strftime["%B %d, %Y"]
print["d2 =", d2]
# mm/dd/y
d3 = today.strftime["%m/%d/%y"]
print["d3 =", d3]
# Month abbreviation, day and year
d4 = today.strftime["%b-%d-%Y"]
print["d4 =", d4]
9Output:
d1 = 16/09/2019 d2 = September 16, 2019 d3 = 09/16/19 d4 = Sep-16-20190
Lưu ý rằng thông báo ValueError giải thích rõ ràng nguyên nhân gốc của ngoại lệ phân tích cú pháp.
Python chuyển đổi chuỗi thành DateTime với Locale
Hãy cùng xem xét một ví dụ trong đó một chuỗi cụ thể địa phương sẽ được chuyển đổi thành đối tượng DateTime. Chúng tôi sẽ sử dụng mô -đun Locale để đặt Locale được sử dụng bởi Python.
d1 = 16/09/2019 d2 = September 16, 2019 d3 = 09/16/19 d4 = Sep-16-20191
Đầu ra:
from datetime import datetime
# datetime object containing current date and time
now = datetime.now[]
print["now =", now]
# dd/mm/YY H:M:S
dt_string = now.strftime["%d/%m/%Y %H:%M:%S"]
print["date and time =", dt_string]
7Bạn có thể kiểm tra toàn bộ tập lệnh Python và nhiều ví dụ về Python từ Kho lưu trữ GitHub của chúng tôi.
TÀI LIỆU THAM KHẢO: DateTime Strptime [], Time Strptime []