Hướng dẫn how does python determine date format? - python xác định định dạng ngày như thế nào?

Hàm để có được một datetime từ một chuỗi,

import datetime
8 yêu cầu định dạng chuỗi làm đối số thứ hai. Có cách nào để xây dựng một datetime từ một chuỗi mà không biết định dạng chính xác và có Python tốt nhất không?

hỏi ngày 29 tháng 2 năm 2012 lúc 22:27Feb 29, 2012 at 22:27

Hướng dẫn how does python determine date format? - python xác định định dạng ngày như thế nào?

5

Có thể thoát khỏi một chức năng đơn giản nếu chỉ kiểm tra ngày.

def get_date(s_date):
    date_patterns = ["%d-%m-%Y", "%Y-%m-%d"]

    for pattern in date_patterns:
        try:
            return datetime.datetime.strptime(s_date, pattern).date()
        except:
            pass

    print "Date is not in expected format: %s" %(s_date)
    sys.exit(0)

Đã trả lời ngày 1 tháng 8 năm 2014 lúc 12:48Aug 1, 2014 at 12:48

SandeepsandeepSandeep

27.3k3 Huy hiệu vàng31 Huy hiệu bạc23 Huy hiệu đồng3 gold badges31 silver badges23 bronze badges

1

Quay lại trước khi tôi là một chàng trai Python, tôi là một chàng trai Perl. Một trong những điều mà tôi luôn bỏ lỡ nhưng chưa thấy bất cứ điều gì gần với nó là ngày :: Manip. Mô -đun đó có thể trích xuất một dấu thời gian tốt từ một lần nhấm nháp. Tôi gần như nghi ngờ rằng đó là tác giả đã thỏa thuận với ma quỷ.

Tôi đã chạy qua một vài điều gây đâm vào nó trong Python:

  • Bình thường
  • mxdatetime
  • Mô -đun ngày của Roundup có một số người hâm mộ

Nếu bạn tìm thấy bất cứ điều gì tốt hơn, tôi rất muốn nghe về nó.

Đã trả lời ngày 1 tháng 3 năm 2012 lúc 4:50Mar 1, 2012 at 4:50

Hướng dẫn how does python determine date format? - python xác định định dạng ngày như thế nào?

SynthesizerPatelSynthesizerPatelsynthesizerpatel

26.7K5 Huy hiệu vàng72 Huy hiệu bạc90 Huy hiệu Đồng5 gold badges72 silver badges90 bronze badges

1

Bạn có thể sử dụng Datefinder, nó sẽ phát hiện tất cả các loại kiểu tự nhiên của ngày.

import datefinder # Module used to find different style of date with time

string_value = " created 01/15/2005 by ACME inc.and associates.January 4th,2017 at 8pm"
matches = datefinder.find_dates(string_value)            
for match in matches:
    print("match found ",match)

Đầu ra

match found  2005-01-15 00:00:00
match found  2017-01-04 20:00:00

Hướng dẫn how does python determine date format? - python xác định định dạng ngày như thế nào?

Copperfield

7.6913 Huy hiệu vàng19 Huy hiệu bạc28 Huy hiệu đồng3 gold badges19 silver badges28 bronze badges

Đã trả lời ngày 24 tháng 2 năm 2019 lúc 19:36Feb 24, 2019 at 19:36

Hướng dẫn how does python determine date format? - python xác định định dạng ngày như thế nào?

2

Giới thiệu

Python đi kèm với một loạt các đối tượng hữu ích có thể được sử dụng ra khỏi hộp. Đối tượng ngày là ví dụ của các đối tượng như vậy. Các loại ngày rất khó thao tác từ đầu, do sự phức tạp của ngày và thời gian. Tuy nhiên, các đối tượng ngày Python giúp việc chuyển đổi ngày thành các định dạng chuỗi mong muốn cực kỳ dễ dàng.

Định dạng ngày là một trong những nhiệm vụ quan trọng nhất mà bạn sẽ phải đối mặt với tư cách là một lập trình viên. Các khu vực khác nhau trên thế giới có những cách khác nhau để biểu diễn ngày/thời gian, do đó, mục tiêu của bạn với tư cách là một lập trình viên là trình bày các giá trị ngày theo cách có thể đọc được cho người dùng.

Ví dụ: bạn có thể cần thể hiện một giá trị ngày bằng số như "02-23-2018". Mặt khác, bạn có thể cần phải viết cùng một giá trị ngày theo định dạng văn bản dài hơn như "ngày 23 tháng 2 năm 2018". Trong một kịch bản khác, bạn có thể muốn trích xuất tháng ở định dạng chuỗi từ giá trị ngày được định dạng bằng số.

Trong bài viết này, chúng tôi sẽ nghiên cứu các loại đối tượng ngày khác nhau cùng với các chức năng của chúng.

Mô -đun DateTime

Mô -đun ____39 của Python, như bạn có thể đoán, chứa các phương thức có thể được sử dụng để hoạt động với các giá trị ngày và thời gian. Để sử dụng mô -đun này, trước tiên chúng tôi nhập nó thông qua câu lệnh

t = datetime.time(1, 10, 20, 13)
0 như sau:

import datetime

Chúng ta có thể biểu diễn các giá trị thời gian bằng cách sử dụng lớp

t = datetime.time(1, 10, 20, 13)
1. Các thuộc tính cho lớp
t = datetime.time(1, 10, 20, 13)
1 bao gồm giờ, phút, thứ hai và micro giây.

Các đối số cho lớp

t = datetime.time(1, 10, 20, 13)
1 là tùy chọn. Mặc dù nếu bạn không chỉ định bất kỳ đối số nào, bạn sẽ lấy lại thời gian 0, điều này khó có thể là thứ bạn cần hầu hết thời gian.

Ví dụ: để khởi tạo đối tượng thời gian với giá trị 1 giờ, 10 phút, 20 giây và 13 micro giây, chúng ta có thể chạy lệnh sau:

t = datetime.time(1, 10, 20, 13)

Để xem thời gian, hãy sử dụng hàm

t = datetime.time(1, 10, 20, 13)
4:

print(t)

Output:

01:10:20.000013

Bạn có thể cần phải nhìn thấy một giờ, phút, thứ hai hoặc micro giây, đây là cách bạn có thể làm như vậy:

print('hour:', t.hour)

Output:

hour: 1

Các phút, giây và micro giây trong thời gian trên có thể được truy xuất như sau:

print('Minutes:', t.minute)
print('Seconds:', t.second)
print('Microsecond:', t.microsecond)

Output:

import datefinder # Module used to find different style of date with time

string_value = " created 01/15/2005 by ACME inc.and associates.January 4th,2017 at 8pm"
matches = datefinder.find_dates(string_value)            
for match in matches:
    print("match found ",match)
0

Các giá trị cho ngày lịch có thể được biểu diễn thông qua lớp

t = datetime.time(1, 10, 20, 13)
5. Các trường hợp sẽ có các thuộc tính cho năm, tháng và ngày.

Hãy để chúng tôi gọi phương thức

t = datetime.time(1, 10, 20, 13)
6 để xem ngày hôm nay:

import datefinder # Module used to find different style of date with time

string_value = " created 01/15/2005 by ACME inc.and associates.January 4th,2017 at 8pm"
matches = datefinder.find_dates(string_value)            
for match in matches:
    print("match found ",match)
1

Output:

import datefinder # Module used to find different style of date with time

string_value = " created 01/15/2005 by ACME inc.and associates.January 4th,2017 at 8pm"
matches = datefinder.find_dates(string_value)            
for match in matches:
    print("match found ",match)
2

Mã sẽ trả về ngày cho ngày hôm nay, do đó, đầu ra bạn thấy sẽ phụ thuộc vào ngày bạn chạy tập lệnh trên.

Bây giờ chúng ta hãy gọi phương thức

t = datetime.time(1, 10, 20, 13)
7 để in ngày ở định dạng khác:

import datefinder # Module used to find different style of date with time

string_value = " created 01/15/2005 by ACME inc.and associates.January 4th,2017 at 8pm"
matches = datefinder.find_dates(string_value)            
for match in matches:
    print("match found ",match)
3

Output:

import datefinder # Module used to find different style of date with time

string_value = " created 01/15/2005 by ACME inc.and associates.January 4th,2017 at 8pm"
matches = datefinder.find_dates(string_value)            
for match in matches:
    print("match found ",match)
4

Phương pháp

t = datetime.time(1, 10, 20, 13)
7 sử dụng định dạng thời gian dài hơn so với các ví dụ chúng ta đã thấy trước đây. Phương pháp này chủ yếu được sử dụng để chuyển đổi thời gian Unix (số giây kể từ ngày 1 tháng 1 năm 1970) thành định dạng chuỗi.

Và đây là cách chúng ta có thể hiển thị năm, tháng và ngày sử dụng lớp

t = datetime.time(1, 10, 20, 13)
5:

import datefinder # Module used to find different style of date with time

string_value = " created 01/15/2005 by ACME inc.and associates.January 4th,2017 at 8pm"
matches = datefinder.find_dates(string_value)            
for match in matches:
    print("match found ",match)
5

Đầu ra

import datefinder # Module used to find different style of date with time

string_value = " created 01/15/2005 by ACME inc.and associates.January 4th,2017 at 8pm"
matches = datefinder.find_dates(string_value)            
for match in matches:
    print("match found ",match)
6

Chuyển đổi ngày thành chuỗi với thời gian diễn ra

Bây giờ bạn đã biết cách tạo các đối tượng ngày và thời gian, chúng ta hãy tìm hiểu cách định dạng chúng thành các chuỗi dễ đọc hơn.

Để đạt được điều này, chúng tôi sẽ sử dụng phương pháp

print(t)
0. Phương pháp này giúp chúng tôi chuyển đổi các đối tượng ngày thành các chuỗi có thể đọc được. Phải mất hai tham số, như được hiển thị trong cú pháp sau:

import datefinder # Module used to find different style of date with time

string_value = " created 01/15/2005 by ACME inc.and associates.January 4th,2017 at 8pm"
matches = datefinder.find_dates(string_value)            
for match in matches:
    print("match found ",match)
7

Tham số đầu tiên là chuỗi định dạng, trong khi tham số thứ hai là thời gian được định dạng, đó là tùy chọn.

Phương pháp này cũng có thể được sử dụng trực tiếp trên đối tượng

import datetime
9, như được hiển thị trong ví dụ sau:

import datefinder # Module used to find different style of date with time

string_value = " created 01/15/2005 by ACME inc.and associates.January 4th,2017 at 8pm"
matches = datefinder.find_dates(string_value)            
for match in matches:
    print("match found ",match)
8

Output:

import datefinder # Module used to find different style of date with time

string_value = " created 01/15/2005 by ACME inc.and associates.January 4th,2017 at 8pm"
matches = datefinder.find_dates(string_value)            
for match in matches:
    print("match found ",match)
9

Kiểm tra hướng dẫn thực hành của chúng tôi, thực tế để học Git, với các thực hành tốt nhất, các tiêu chuẩn được công nghiệp chấp nhận và bao gồm bảng gian lận. Ngừng các lệnh git googling và thực sự tìm hiểu nó!

Chúng tôi đã sử dụng các chuỗi ký tự sau để định dạng ngày:

  • print(t)
    
    2: Trả về ba ký tự đầu tiên của tên tháng. Trong ví dụ của chúng tôi, nó đã trả lại "SEP"
  • print(t)
    
    3: Trả về ngày trong tháng, từ 1 đến 31. Trong ví dụ của chúng tôi, nó đã trả lại "15".
  • print(t)
    
    4: Trả về năm ở định dạng bốn chữ số. Trong ví dụ của chúng tôi, nó đã trả lại "2018".
  • print(t)
    
    5: Trả lại giờ. Trong ví dụ của chúng tôi, nó đã trả lại "00".
  • print(t)
    
    6: Trả về phút, từ 00 đến 59. Trong ví dụ của chúng tôi, nó đã trả lại "00".
  • print(t)
    
    7: Trả về thứ hai, từ 00 đến 59. Trong ví dụ của chúng tôi, nó đã trả lại "00".

Chúng tôi đã không vượt qua một thời gian, do đó các giá trị cho thời gian là tất cả "00". Ví dụ sau đây cho thấy thời gian cũng có thể được định dạng như thế nào:

match found  2005-01-15 00:00:00
match found  2017-01-04 20:00:00
0

Output:

match found  2005-01-15 00:00:00
match found  2017-01-04 20:00:00
1

Danh sách mã ký tự hoàn chỉnh

Khác với các chuỗi ký tự được đưa ra ở trên, phương thức

print(t)
0 có một số chỉ thị khác để định dạng giá trị ngày:

  • print(t)
    
    9: Trả về ba nhân vật đầu tiên của ngày trong tuần, ví dụ: Thứ Tư.
  • 01:10:20.000013
    
    0: Trả về tên đầy đủ của ngày trong tuần, ví dụ: Thứ Tư.
  • 01:10:20.000013
    
    1: Trả về tên đầy đủ của tháng, ví dụ: Tháng 9.
  • 01:10:20.000013
    
    2: Trả lại ngày trong tuần làm số, từ 0 đến 6, với Chủ nhật là 0.
  • 01:10:20.000013
    
    3: Trả về tháng dưới dạng số, từ 01 đến 12.
  • 01:10:20.000013
    
    4: Trả về AM/PM cho thời gian.
  • 01:10:20.000013
    
    5: Trả lại năm ở định dạng hai chữ số, nghĩa là không có thế kỷ. Ví dụ: "18" thay vì "2018".
  • 01:10:20.000013
    
    6: Trả về micro giây từ 000000 đến 999999.
  • 01:10:20.000013
    
    7: Trả về múi giờ.
  • 01:10:20.000013
    
    8: Trả về bù UTC.
  • 01:10:20.000013
    
    9: Trả về số lượng của ngày trong năm, từ 001 đến 366.
  • print('hour:', t.hour)
    
    0: Trả lại số tuần của năm, từ 00 đến 53, với thứ Hai được tính là ngày đầu tiên của tuần.
  • print('hour:', t.hour)
    
    1: Trả lại số tuần của năm, từ 00 đến 53, với Chủ nhật được tính là ngày đầu tiên của mỗi tuần.
  • print('hour:', t.hour)
    
    2: Trả về phiên bản ngày và giờ địa phương.
  • print('hour:', t.hour)
    
    3: Trả về phiên bản cục bộ của ngày.
  • print('hour:', t.hour)
    
    4: Trả về phiên bản địa phương của thời gian.

Xem xét ví dụ sau:

match found  2005-01-15 00:00:00
match found  2017-01-04 20:00:00
2

Output:

match found  2005-01-15 00:00:00
match found  2017-01-04 20:00:00
3

Và đây là cách bạn chỉ có thể nhận được tháng:

match found  2005-01-15 00:00:00
match found  2017-01-04 20:00:00
4

Output:

match found  2005-01-15 00:00:00
match found  2017-01-04 20:00:00
5

Hãy để chúng tôi hiển thị năm:

match found  2005-01-15 00:00:00
match found  2017-01-04 20:00:00
6

Output:

match found  2005-01-15 00:00:00
match found  2017-01-04 20:00:00
7

Trong ví dụ này, chúng tôi đã sử dụng mã định dạng

print(t)
4. Lưu ý rằng
print('hour:', t.hour)
6 là ở chữ hoa. Bây giờ hãy viết nó bằng chữ thường:

match found  2005-01-15 00:00:00
match found  2017-01-04 20:00:00
8

Output:

match found  2005-01-15 00:00:00
match found  2017-01-04 20:00:00
9

Lần này, thế kỷ đã bị bỏ qua. Như bạn có thể thấy, với các mã định dạng này, bạn có thể đại diện cho thời gian ngày dưới bất kỳ hình thức nào bạn muốn.

Chuyển đổi chuỗi thành ngày với thời gian diễn ra

Phương pháp

print(t)
0 đã giúp chúng tôi chuyển đổi các đối tượng ngày thành các chuỗi dễ đọc hơn. Phương pháp
print('hour:', t.hour)
8 làm ngược lại, nghĩa là, nó lấy các chuỗi và chuyển đổi chúng thành các đối tượng ngày mà Python có thể hiểu.

Đây là cú pháp cho phương pháp:

import datetime
0

Tham số

print('hour:', t.hour)
9 là giá trị trong định dạng chuỗi mà chúng tôi muốn chuyển đổi thành định dạng ngày. Tham số
hour: 1
0 là chỉ thị chỉ định định dạng sẽ được thực hiện vào ngày sau khi chuyển đổi.

Ví dụ: giả sử chúng ta cần chuyển đổi chuỗi "9/15/18" thành đối tượng

import datetime
9.

Trước tiên chúng ta hãy nhập mô -đun

import datetime
9. Chúng tôi sẽ sử dụng từ khóa
hour: 1
3 để có thể tham chiếu các hàm mô -đun cụ thể mà không có định dạng DOT:

import datetime
1

Sau đó chúng ta có thể xác định ngày ở dạng chuỗi:

import datetime
2

Python sẽ không thể hiểu chuỗi trên dưới dạng DateTime cho đến khi chúng tôi chuyển đổi nó thành đối tượng

import datetime
9 thực tế. Chúng tôi có thể thực hiện thành công bằng cách gọi phương thức
print('hour:', t.hour)
8.

Thực hiện lệnh sau để chuyển đổi chuỗi:

import datetime
3

Bây giờ chúng ta hãy gọi chức năng

t = datetime.time(1, 10, 20, 13)
4 để hiển thị chuỗi ở định dạng
import datetime
9:

import datetime
4

Output:

import datetime
5

Như bạn có thể thấy, việc chuyển đổi đã thành công!

Bạn có thể thấy rằng dấu gạch chéo phía trước "/" đã được sử dụng để tách các yếu tố khác nhau của chuỗi. Điều này cho biết phương thức

print('hour:', t.hour)
8 định dạng ngày của chúng tôi là gì, trong trường hợp của chúng tôi "/" được sử dụng làm dấu phân cách.

Nhưng điều gì sẽ xảy ra nếu ngày/tháng/năm bị tách ra bởi một "-"? Đây là cách bạn xử lý điều đó:

import datetime
6

Output:

import datetime
5

Và một lần nữa, nhờ trình xác định định dạng, phương thức

print('hour:', t.hour)
8 có thể phân tích ngày của chúng tôi và chuyển đổi nó thành đối tượng ngày.

Sự kết luận

Trong bài viết này, chúng tôi đã nghiên cứu cách định dạng ngày trong Python. Chúng tôi đã thấy làm thế nào mô -đun

import datetime
9 trong Python có thể được sử dụng để thao tác các giá trị ngày và thời gian. Mô -đun chứa một số lớp có thể được sử dụng cho mục đích này. Ví dụ: lớp
t = datetime.time(1, 10, 20, 13)
1 được sử dụng để biểu diễn các giá trị thời gian trong khi lớp
t = datetime.time(1, 10, 20, 13)
5 được sử dụng để biểu diễn các giá trị ngày lịch.

Làm thế nào để Python xác minh định dạng ngày?

Phương pháp 2: Sử dụng DateUtil ...
Nhập ngày dưới dạng chuỗi và tạo một biến để lưu trữ nó ..
In ngày đầu vào đã cho ..
Sử dụng các khối ngoại trừ thử để xử lý các ngoại lệ. ....
Nếu ngày không đúng/không hợp lệ thì mã ngoại trừ sẽ được thực thi ..

Làm thế nào để Python làm việc với ngày?

Trong Python, ngày và thời gian không phải là một loại dữ liệu của riêng họ, nhưng một mô -đun có tên DateTime có thể được nhập để hoạt động với ngày cũng như thời gian. Mô -đun DateTime Python được tích hợp vào Python, do đó không cần phải cài đặt bên ngoài. Mô -đun Datetime Python cung cấp cho các lớp để làm việc theo ngày và giờ.a module named datetime can be imported to work with the date as well as time. Python Datetime module comes built into Python, so there is no need to install it externally. Python Datetime module supplies classes to work with date and time.

Làm thế nào để Python xử lý các định dạng ngày khác nhau?

Sử dụng DateTime.strftime (định dạng) để chuyển đổi đối tượng DateTime thành một chuỗi theo định dạng tương ứng. Mã định dạng là các chỉ thị tiêu chuẩn để đề cập đến định dạng bạn muốn đại diện cho DateTime. Ví dụ:%d-%m-%y%H:%m:%s Mã chuyển đổi ngày thành DD-MM-YYYY HH: MM: SS. strftime(format) to convert a datetime object into a string as per the corresponding format . The format codes are standard directives for mentioning in which format you want to represent datetime. For example, the %d-%m-%Y %H:%M:%S codes convert date to dd-mm-yyyy hh:mm:ss format.

Làm thế nào để bạn kiểm tra xem ngày ở định dạng DD MM Yyyy ở Python?

Làm thế nào để bạn kiểm tra xem ngày ở định dạng DD MM Yyyy ở Python ?..
>>> Nhập Datetime ..
>>> xác thực def (Date_Text):.
ngày giờ.ngày giờ.Strptime (date_text, '%y-%m-%d').
ngoại trừ valueError:.
Tăng giá trịerror ("Định dạng dữ liệu không chính xác, nên là yyyy-mm-dd").

Định dạng ngày trong Python là bao nhiêu?

Nhân tiện, mã định dạng %D, %B và %Y được sử dụng cho ngày, tháng (tên đầy đủ) và năm tương ứng.Ghé thăm Python Strptime () để tìm hiểu thêm.%d , %B and %Y format codes are used for day , month (full name) and year respectively. Visit Python strptime() to learn more.

Làm thế nào để bạn chuyển đổi mm/dd/yyyy sang python?

Yyyy-mm-dd Bạn có thể chuyển đổi các đối tượng DateTime và đối tượng dấu thời gian gấu trúc thành chuỗi bằng phương pháp str hoặc strftime: %y có nghĩa là bốn chữ số, %m trình bày hai tháng, %D mô tả ngày hai chữ số, %f làPhím tắt cho%y-%m-%d.with str or the strftime method: %Y means four-digit year, %m presents two-digit month, %d describes two-digit day, %F is the shortcut for %Y-%m-%d .