Hướng dẫn get date from string python - lấy ngày từ chuỗi trăn

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-2019
2 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-2019
2 từ mô -đun
d1 = 16/09/2019
d2 = September 16, 2019
d3 = 09/16/19
d4 = Sep-16-2019
4. 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-2019
5 để 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-2019
5 trả về một đối tượng
d1 = 16/09/2019
d2 = September 16, 2019
d3 = 09/16/19
d4 = Sep-16-2019
2, đượ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-2019
4 của mô -đun
d1 = 16/09/2019
d2 = September 16, 2019
d3 = 09/16/19
d4 = Sep-16-2019
4.

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.

Chỉ thịSự mô tảVí dụ đầu ra
%mộtNgà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ỘTNgà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)
%wNgà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
%dNgày trong tháng dưới dạng số thập phân số không.01, 02,…, 31
%bThá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,
%BThá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)
%mTháng dưới dạng số thập phân bằng không.01, 02… 12
%yNăm không có thế kỷ như một số thập phân số không.01, 02, 99 99
%YNăm với thế kỷ như một số thập phân.0001, 0002, xông, 9999
%HGiờ (đồng hồ 24 giờ) là một số thập phân bằng không.01, 02, xông, 23
%TÔIGiờ (đồng hồ 12 giờ) là một số thập phân bằng không.01, 02,…, 12
%PLocale từ tương đương với AM hoặc PM.AM, pm (en_us) AM, pm (de_de)
%MPhút như một số thập phân bằng không.01, 02, xông, 59
%SThứ hai là một số thập phân bằng không.01, 02, xông, 59
%SThứ 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)
1

Output:

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)
2

Phầ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)
3

Output:

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)
4

Hã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)
5

Output:

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)
6

Chuỗ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)
7

Output:

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)
8

Ví 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)
9

Output:

d1 = 16/09/2019
d2 = September 16, 2019
d3 = 09/16/19
d4 = Sep-16-2019
0

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-2019
1

Đầ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)	
7

Bạ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 ()

Làm cách nào để chuyển đổi một chuỗi thành một ngày trong Python?

Chúng ta có thể chuyển đổi một chuỗi thành DateTime bằng hàm strptime (). 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.strptime() function. This function is available in datetime and time modules to parse a string to datetime and time objects respectively.

Làm cách nào để chuyển đổi một chuỗi thành một ngày?

Chuỗi Java cho đến ngày ví dụ..
nhập java.text.simpledateformat ;.
nhập java.util.date ;.
lớp công khai StringTodateExample1 {.
công khai void void main (String [] args) ném ngoại lệ {.
Chuỗi SDATE1 = "31/12/1998" ;.
Ngày ngày1 = new SimpleDateFormat ("DD/mm/yyyy"). Parse (SDATE1) ;.
System.out.println (sdate1+"\ t"+date1) ;.

Làm thế nào để bạn tìm thấy một chuỗi là một ngày trong Python?

Trong thư viện Python Python sẵn có này, phương thức parse () có thể được sử dụng để phát hiện ngày và thời gian trong một chuỗi.parse() method can be used to detect date and time in a string.

Làm thế nào để bạn trích xuất một ngày từ một tệp .txt trong python?

Trích xuất ngày từ một tệp văn bản với mô -đun DateFinder.Mô -đun Datefinder Python có thể định vị ngày trong một cơ thể của văn bản.Sử dụng phương thức find_dates (), có thể tìm kiếm dữ liệu văn bản cho nhiều loại ngày khác nhau.DateFinder sẽ trả về bất kỳ ngày nào mà nó tìm thấy dưới dạng đối tượng DateTime.with the Datefinder Module. The Python datefinder module can locate dates in a body of text. Using the find_dates() method, it's possible to search text data for many different types of dates. Datefinder will return any dates it finds in the form of a datetime object.