Trong bài đăng ngắn này, bạn sẽ thấy cách lấy ngày hệ thống trước đó, hiện tại và ngày tiếp theo trong Python. Bạn cũng sẽ quan sát cách sửa đổi mã Python để có định dạng ngày mong muốn Show
Để bắt đầu, đây là cú pháp mà bạn có thể sử dụng để lấy ngày hệ thống có dấu thời gian (sau này bạn sẽ thấy cách lấy ngày không có dấu thời gian) Ngay hiện tại import datetime Current_Date = datetime.datetime.today() print (Current_Date) Ngày trước import datetime Previous_Date = datetime.datetime.today() - datetime.timedelta(days=1) print (Previous_Date) Ngày tiếp theo import datetime NextDay_Date = datetime.datetime.today() + datetime.timedelta(days=1) print (NextDay_Date) Tiếp theo, bạn sẽ thấy hai trường hợp sau
Trường hợp 1. Ngày hệ thống không được định dạng trong PythonBạn có thể thêm 3 phần sau vào mã để lấy ngày hệ thống không được định dạng (bao gồm cả dấu thời gian) trong Python
Đây là mã Python đầy đủ mà bạn có thể sử dụng import datetime Current_Date = datetime.datetime.today() print ('Current Date: ' + str(Current_Date)) Previous_Date = datetime.datetime.today() - datetime.timedelta(days=1) print ('Previous Date: ' + str(Previous_Date)) NextDay_Date = datetime.datetime.today() + datetime.timedelta(days=1) print ('Next Date: ' + str(NextDay_Date)) Lưu ý rằng để có được ngày trước đó, bạn sẽ cần trừ 1 ngày kể từ ngày hiện tại ngày giờ. ngày giờ. hôm nay() – ngày giờ. timedelta(ngày= 1 ) Ví dụ: nếu bạn muốn lấy ngày hôm kia, thì bạn có thể trừ 2 ngày như sau ngày giờ. ngày giờ. hôm nay() – ngày giờ. timedelta(ngày= 2 ) Để nhận các ngày trong tương lai, chỉ cần sử dụng biểu tượng dấu cộng và đặt số ngày bạn muốn (trong ví dụ của chúng tôi, chúng tôi đã thêm 1 ngày vào tương lai) ngày giờ. ngày giờ. hôm nay() + ngày giờ. timedelta(ngày= 1 ) Đây là kết quả nếu ai đó chạy mã Python vào ngày 22-Mar-2021
Lưu ý rằng các kết quả được tạo bằng Python bao gồm cả ngày và dấu thời gian. Trong phần tiếp theo, bạn sẽ thấy cách lấy ngày hệ thống được định dạng trong Python (không bao gồm dấu thời gian) trường hợp 2. Định dạng ngày hệ thống trong PythonGiả sử bạn muốn trình bày ngày hệ thống của mình bằng một định dạng khác. Ví dụ: bạn có thể muốn hiển thị ngày hệ thống là DDMMYYYY (không có dấu thời gian) Để hoàn thành nhiệm vụ này, bạn sẽ cần sử dụng strftime và đặt định dạng thành %d%m%Y trong đó
Đây là mã Python đầy đủ cho ví dụ của chúng tôi import datetime Current_Date_Formatted = datetime.datetime.today().strftime ('%d%m%Y') # format the date to ddmmyyyy print ('Current Date: ' + str(Current_Date_Formatted)) Previous_Date = datetime.datetime.today() - datetime.timedelta(days=1) Previous_Date_Formatted = Previous_Date.strftime ('%d%m%Y') # format the date to ddmmyyyy print ('Previous Date: ' + str(Previous_Date_Formatted)) NextDay_Date = datetime.datetime.today() + datetime.timedelta(days=1) NextDay_Date_Formatted = NextDay_Date.strftime ('%d%m%Y') # format the date to ddmmyyyy print ('Next Date: ' + str(NextDay_Date_Formatted)) Vào ngày 22-Mar-2021, kết quả là
Đây chỉ là một ví dụ về định dạng ngày mà bạn có thể sử dụng. Bạn có thể áp dụng các định dạng khác nhau bằng cách thay đổi thông tin trong ngoặc strftime Chẳng hạn, nếu bạn muốn trình bày tháng bằng ký tự, thay vì bằng chữ số, thì bạn có thể thay thế %m bằng %b trong dấu ngoặc strftime Những người không có kinh nghiệm làm việc với bộ dữ liệu trong thế giới thực có thể không gặp cột ngày. Họ có thể có ấn tượng rằng làm việc với ngày tháng hiếm khi được sử dụng và không quá quan trọng. Để giải thích cho họ, tôi đã liệt kê các ví dụ thực tế trong đó việc sử dụng mô-đun datetime có thể mang lại lợi ích
Nhập mô-đun ngày giờ Bạn có thể nhập hoặc tải mô-đun ngày giờ bằng cách sử dụng lệnh bên dưới -import datetimeBạn không cần cài đặt mô-đun này vì nó đi kèm với cài đặt phần mềm python ngàyỞ đây chúng tôi đang sử dụng lớpdt = datetime.date(2019, 10, 20) print(dt) Output 2019-10-206 được sử dụng để biểu thị các giá trị ngày theo lịch. Phương pháp dt = datetime.date(2019, 10, 20) print(dt) Output 2019-10-207 được sử dụng để lấy ngày hiện tại. datetime.date.today() Output datetime.date(2019, 7, 19)Để hiển thị nó giống như một ngày dương lịch thích hợp, chúng ta có thể bọc nó trong lệnh dt = datetime.date(2019, 10, 20) print(dt) Output 2019-10-208. print(datetime.date.today()) Output 2019-07-19 Tạo đối tượng Ngàylớp date tuân theo cú pháp như hình bên dưới-ngày (năm, tháng, ngày)________số 8_______ Trích xuất ngày, tháng và năm từ các giá trị ngàydt.day 20 dt.month 10 dt.year 2019 Tùy chỉnh định dạng ngàyBạn có thể tùy chỉnh định dạng ngày tháng bằng cách xác định định dạng ngày tháng bằng phương phápdt = datetime.date(2019, 10, 20) print(dt) Output 2019-10-209. Nó chuyển đổi các đối tượng ngày thành chuỗi. dt.strftime("%d-%m-%Y") Output 20-10-2019 dt.day 20 dt.month 10 dt.year 20190 đề cập đến ngày trong tháng. Trong dt.day 20 dt.month 10 dt.year 20191, %d trả về 20 dt.day 20 dt.month 10 dt.year 20192 đề cập đến tháng trong năm. Trong dt.day 20 dt.month 10 dt.year 20191, %m trả về 10 dt.day 20 dt.month 10 dt.year 20194 đề cập đến năm. Chữ 'Y' viết hoa. Trong dt.day 20 dt.month 10 dt.year 20191, %Y trả về năm 2019 dt.day 20 dt.month 10 dt.year 20196 đề cập đến năm ở định dạng hai chữ số. Trong dt.day 20 dt.month 10 dt.year 20191, %y trả về 19 Các mã định dạng phổ biến khác
dt.strftime("%d/%m/%Y") 20/10/2019 dt.strftime("%b %d, %Y") Oct 20, 2019 dt.strftime("%B %d, %Y") October 20, 2019 dt.strftime("%a %B %d, %Y") Sun October 20, 2019 dt.strftime("%A %B %d, %Y") Sunday October 20, 2019 dt.strftime("%A, %B %d, %Y") Sunday, October 20, 2019 Thời gianCác giá trị thời gian được định nghĩa với lớpdt.strftime("%d-%m-%Y") Output 20-10-20196. Nó tuân theo cú pháp như hình dưới đây - ngày giờ. thời gian (giờ, phút, giây, micro giây) t = datetime.time(21, 2, 3) print(t) 21:02:03 Cách lấy giờ, phút và giây từ các giá trị thời giant.hour 21 t.minute 2 t.second 3 t.microsecond 0 Cách chuyển đổi thời gian sang định dạng AM PM
t.strftime("%I:%M %p") 09:02 PM Xử lý cả ngày và giờthư viện datetime có một lớp khác tên là lớpdt.strftime("%d/%m/%Y") 20/10/2019 dt.strftime("%b %d, %Y") Oct 20, 2019 dt.strftime("%B %d, %Y") October 20, 2019 dt.strftime("%a %B %d, %Y") Sun October 20, 2019 dt.strftime("%A %B %d, %Y") Sunday October 20, 2019 dt.strftime("%A, %B %d, %Y") Sunday, October 20, 20192 được sử dụng để biểu thị ngày cộng với thời gian. Bạn có thể gọi nó là dấu thời gian. Phương thức dt.strftime("%d/%m/%Y") 20/10/2019 dt.strftime("%b %d, %Y") Oct 20, 2019 dt.strftime("%B %d, %Y") October 20, 2019 dt.strftime("%a %B %d, %Y") Sun October 20, 2019 dt.strftime("%A %B %d, %Y") Sunday October 20, 2019 dt.strftime("%A, %B %d, %Y") Sunday, October 20, 20193 hoặc dt = datetime.date(2019, 10, 20) print(dt) Output 2019-10-207 của lớp datetime được sử dụng để trích xuất ngày và giờ hiện tại. datetime.date.today() Output datetime.date(2019, 7, 19)0_______33_______5 đại diện cho ngày giờ địa phương. dt.strftime("%d/%m/%Y") 20/10/2019 dt.strftime("%b %d, %Y") Oct 20, 2019 dt.strftime("%B %d, %Y") October 20, 2019 dt.strftime("%a %B %d, %Y") Sun October 20, 2019 dt.strftime("%A %B %d, %Y") Sunday October 20, 2019 dt.strftime("%A, %B %d, %Y") Sunday, October 20, 20196 đại diện cho giờ địa phương. datetime.date.today() Output datetime.date(2019, 7, 19)1 Tạo đối tượng ngày giờCú pháp của lớp datetime như sau-ngày giờ (năm, tháng, ngày, giờ, phút, giây, micro giây) datetime.date.today() Output datetime.date(2019, 7, 19)2 Làm cách nào để chuyển đổi một chuỗi thành datetime trong python?datetime.date.today() Output datetime.date(2019, 7, 19)3 Làm thế nào để có được thời gian hiện tại?Chúng ta có thể sử dụng cùng chức năng mà chúng ta đã sử dụng trong phần trước và trích xuất thời gian từ giá trị được trả về bằng phương thứcdt.strftime("%d/%m/%Y") 20/10/2019 dt.strftime("%b %d, %Y") Oct 20, 2019 dt.strftime("%B %d, %Y") October 20, 2019 dt.strftime("%a %B %d, %Y") Sun October 20, 2019 dt.strftime("%A %B %d, %Y") Sunday October 20, 2019 dt.strftime("%A, %B %d, %Y") Sunday, October 20, 20197. datetime.date.today() Output datetime.date(2019, 7, 19)4 Làm thế nào để có được ngày hiện tại trong tuần?Giả sử bạn muốn trích xuất số ngày. 1 cho thứ hai và 7 cho chủ nhật. Trong ví dụ bên dưới, nó trả về 6 vì đó là Thứ Bảy ngày 20 tháng 7 năm 2019.datetime.date.today() Output datetime.date(2019, 7, 19)5 Tính ngày trong tương lai hoặc quá khứVới việc sử dụngdt.strftime("%d/%m/%Y") 20/10/2019 dt.strftime("%b %d, %Y") Oct 20, 2019 dt.strftime("%B %d, %Y") October 20, 2019 dt.strftime("%a %B %d, %Y") Sun October 20, 2019 dt.strftime("%A %B %d, %Y") Sunday October 20, 2019 dt.strftime("%A, %B %d, %Y") Sunday, October 20, 20198, bạn có thể cộng hoặc trừ ngày, tuần, giờ, phút, giây, micro giây và mili giây. Nó rất hữu ích khi bạn muốn tính ngày trong tương lai hoặc quá khứ. Giả sử bạn được yêu cầu xác định tất cả khách hàng đã đăng ký sản phẩm trong 30 ngày qua. Để giải quyết vấn đề này, bạn cần tính ngày cách ngày hôm nay 30 ngày. datetime.date.today() Output datetime.date(2019, 7, 19)6Trong dt.strftime("%d/%m/%Y") 20/10/2019 dt.strftime("%b %d, %Y") Oct 20, 2019 dt.strftime("%B %d, %Y") October 20, 2019 dt.strftime("%a %B %d, %Y") Sun October 20, 2019 dt.strftime("%A %B %d, %Y") Sunday October 20, 2019 dt.strftime("%A, %B %d, %Y") Sunday, October 20, 20198, các tùy chọn tháng và năm bị thiếu, điều đó có nghĩa là bạn không thể tính toán số ngày tăng trong tương lai theo (các) tháng hoặc (các) năm. Để hoàn thành nhiệm vụ này, chúng ta có thể sử dụng gói t = datetime.time(21, 2, 3) print(t) 21:02:030. Hãy nhập gói này bằng cách gửi mã bên dưới -_______10_______7Nếu nó chưa được cài đặt trên hệ thống của bạn, hãy cài đặt nó bằng cách chạy lệnh này t = datetime.time(21, 2, 3) print(t) 21:02:031 datetime.date.today() Output datetime.date(2019, 7, 19)8Nếu bạn đang thắc mắc t = datetime.time(21, 2, 3) print(t) 21:02:032 này khác với t = datetime.time(21, 2, 3) print(t) 21:02:033 như thế nào, hãy quan sát các giá trị trả về (kết quả) của cả hai lệnh Vì tháng 7 có 31 ngày, 30 ngày tới sử dụng tờ khai thuế t = datetime.time(21, 2, 3) print(t) 21:02:033 này 2019-08-19 10. 51. 00. t = datetime.time(21, 2, 3) print(t) 21:02:032 trả lại 2019-08-20 10. 51. 00 tức là đủ 1 tháng. datetime.date.today() Output datetime.date(2019, 7, 19)9 Xem xét năm nhuận phương thức relativedelta từ gói dateutil sẽ xử lý năm nhuận trong khi tính toán các ngày trong tương lai hoặc quá khứ. Năm 2000 là năm nhuận nên tháng 2 có 29 ngày. Nhưng tháng 2 năm sau chỉ có 28 ngày.print(datetime.date.today()) Output 2019-07-190 Sự khác biệt giữa hai ngàyGiả sử bạn cần tính số ngày giữa hai ngày. Đó là một vấn đề về dữ liệu rất phổ biến khi bạn cần tính thời hạn của khách hàng được cung cấp thông tin - khi họ mở tài khoản (ngày bắt đầu) và khi tài khoản bị đóng (ngày kết thúc).print(datetime.date.today()) Output 2019-07-191 Bạn sẽ tính số tháng giữa hai ngày như thế nào? Một cách là tính số ngày rồi chia cho 30 để ra số tháng. Nhưng không phải lúc nào cũng đúng vì có tháng có 31 ngàyprint(datetime.date.today()) Output 2019-07-192 print(datetime.date.today()) Output 2019-07-193Làm thế nào nó hoạt động?
Tâm điểm Làm cách nào để làm việc với ngày trên khung dữ liệu gấu trúc?Trong thế giới thực, chúng tôi thường nhập dữ liệu từ các tệp bên ngoài và lưu trữ dữ liệu đó trong DataFrame của gấu trúc. Do đó, điều quan trọng là phải hiểu cách chúng tôi thực hiện các thao tác ngày và giờ trên DataFrame. Hãy tạo một khung dữ liệu mẫu cho mục đích minh họa.print(datetime.date.today()) Output 2019-07-194Hãy kiểm tra các loại cột. print(datetime.date.today()) Output 2019-07-195Ở đây cả hai cột A và B đều là chuỗi (giá trị ký tự). print(datetime.date.today()) Output 2019-07-196 Cần phải chuyển đổi các cột thành đối tượng t = datetime.time(21, 2, 3) print(t) 21:02:036 vì các biến này được lưu trữ trong chuỗi. print(datetime.date.today()) Output 2019-07-197Để tính số ngày sử dụng cột A và B trên pandas dataframe, bạn chỉ cần lấy hiệu của 2 cột này. print(datetime.date.today()) Output 2019-07-198Cột C mà chúng tôi đã tính toán ở định dạng ngày giờ. Để lấy giá trị chênh lệch ở định dạng số nguyên, bạn có thể gửi lệnh bên dưới. t = datetime.time(21, 2, 3) print(t) 21:02:037 cho phép pandas sử dụng các phương thức datetime. print(datetime.date.today()) Output 2019-07-199 Nhận 3 tháng trước ngày Cách Pythonic thuần túy là xác định hàm trong lambda và nó chạy trên tất cả các hàng.dt = datetime.date(2019, 10, 20) print(dt) Output 2019-10-200Một cách khác là sử dụng chức năng tích hợp sẵn t = datetime.time(21, 2, 3) print(t) 21:02:038 của gói pandas để cộng hoặc trừ ngày, tháng, năm, tuần, giờ, phút, giây, micro giây và nano giây. dt = datetime.date(2019, 10, 20) print(dt) Output 2019-10-201 Lọc khung dữ liệu theo ngày Giả sử bạn chỉ muốn chọn những hàng mà cột B có giá trị lớn hơn ngày 1 tháng 5 năm 2019 dt = datetime.date(2019, 10, 20) print(dt) Output 2019-10-202Chọn dữ liệu giữa hai ngày Giả sử bạn muốn chọn các hàng từ pandas dataframe giữa hai ngày (giả sử từ ngày 1 tháng 5 đến ngày 30 tháng 9) df[df. B. giữa (ngày giờ. ngày giờ(2019,5,1), ngày giờ. ngày giờ(2019,9,30))] Cách làm việc với các múi giờ khác nhauNhiều lần chúng tôi có các giá trị ngày ở các múi giờ khác nhau và chúng tôi cần chuyển đổi nó thành múi giờ địa phương của mình. Nó không phải là dễ dàng để giải quyết điều này bằng tay. Trong python, có một thư viện tên làt = datetime.time(21, 2, 3) print(t) 21:02:039 để cài đặt và chuyển đổi múi giờ Bạn có thể tìm thấy tất cả các múi giờ bằng cách gửi lệnh này. dt = datetime.date(2019, 10, 20) print(dt) Output 2019-10-203Để đặt đối tượng ngày giờ trong một múi giờ cụ thể (giả sử Châu Á/Kolkata), bạn có thể sử dụng tham số có tên tzinfo cho việc này. dt = datetime.date(2019, 10, 20) print(dt) Output 2019-10-204Để chuyển đổi nó sang múi giờ US/Arizona, chúng ta có thể sử dụng phương thức có tên astimezone để chuyển đổi. Nếu bạn quan sát thấy ngày đã bị thay đổi sau khi chuyển đổi vì chênh lệch giữa hai múi giờ này là hơn 12 giờ. dt = datetime.date(2019, 10, 20) print(dt) Output 2019-10-205 Học Python. 50 hướng dẫn Python hàng đầu Thông báo bài viết liên quan về tác giả Deepanshu thành lập ListenData với một mục tiêu đơn giản - Làm cho các phân tích trở nên dễ hiểu và dễ theo dõi. Ông có hơn 10 năm kinh nghiệm trong lĩnh vực khoa học dữ liệu. Trong nhiệm kỳ của mình, ông đã làm việc với các khách hàng toàn cầu trong nhiều lĩnh vực khác nhau như Ngân hàng, Bảo hiểm, Cổ phần tư nhân, Viễn thông và Nhân sự Làm cách nào để có được 7 ngày trước ngày trong Python?Nhận ngày hệ thống trước đó, hiện tại và ngày tiếp theo bằng Python . Ngay hiện tại. nhập datetime Current_Date = datetime. ngày giờ. hôm nay () in (Ngày_hiện_tại) Ngày trước. nhập datetime Previous_Date = datetime. ngày giờ. hôm nay() - ngày giờ. timedelta(days=1) in (Ngày_trước) Làm cách nào để có được ngày sau 30 ngày bằng Python?Hàm timedelta() . Trong Python, chúng tôi có một mô-đun datetime được tích hợp sẵn. Nó cung cấp một datetime. phương thức timedelta() xử lý đối tượng timedelta. Số ngày được thêm vào được truyền dưới dạng đối số cho hàm timedelta và nó trả về ngày ở định dạng đã cho là năm-tháng-ngày-giờ. phút. giây.
Làm cách nào để sử dụng timedelta trong nhiều tháng bằng Python?Không có cách nào trực tiếp để làm điều đó với datetime của Python. Kiểm tra loại relativedelta tại python-dateutil . Nó cho phép bạn chỉ định thời gian bằng tháng. Lưu câu trả lời này. |