Hướng dẫn how do you check if something is a date python? - làm thế nào để bạn kiểm tra xem một cái gì đó là một con trăn ngày?

Tôi đã thử một vài tùy chọn rõ ràng nhưng không ai trong số chúng hoạt động:

In [150]: x
Out[150]: datetime.date[2012, 9, 1]

In [151]: type[x]
Out[151]: datetime.date

In [152]: isinstance[x, datetime.date]
---------------------------------------------------------------------------
TypeError                                 Traceback [most recent call last]
 in []
----> 1 isinstance[x, datetime.date]

TypeError: isinstance[] arg 2 must be a class, type, or tuple of classes and types

In [153]: x is datetime.date
Out[153]: False

In [154]: type[x] is datetime.date
Out[154]: False

Cách làm điều này là gì?

Hỏi ngày 22 tháng 4 năm 2013 lúc 15:56Apr 22, 2013 at 15:56

6

Tôi tin rằng lý do nó không hoạt động trong ví dụ của bạn là bạn đã nhập

from datetime import datetime
4 như vậy:

from datetime import datetime

Điều này dẫn đến lỗi bạn thấy

In [30]: isinstance[x, datetime.date]
---------------------------------------------------------------------------
TypeError                                 Traceback [most recent call last]
/ in []
----> 1 isinstance[x, datetime.date]

TypeError: isinstance[] arg 2 must be a class, type, or tuple of classes and types

Nếu bạn chỉ cần nhập như vậy:

import datetime

Mã sẽ chạy như thể hiện trong tất cả các câu trả lời khác

In [31]: import datetime

In [32]: isinstance[x, datetime.date]
Out[32]: True

In [33]: 

Đã trả lời ngày 22 tháng 4 năm 2013 lúc 16:06Apr 22, 2013 at 16:06

olly_ukolly_ukolly_uk

11.4K3 Huy hiệu vàng39 Huy hiệu bạc45 Huy hiệu Đồng3 gold badges39 silver badges45 bronze badges

5

đúng cách là

import datetime
isinstance[x, datetime.date]

Khi tôi thử điều này trên máy của mình, nó hoạt động tốt. Bạn cần xem xét lý do tại sao

from datetime import datetime
5 không phải là một lớp. Có lẽ bạn đang che giấu nó với một cái gì đó khác? hoặc không tham chiếu chính xác cho nhập khẩu của bạn?

Đã trả lời ngày 22 tháng 4 năm 2013 lúc 15:58Apr 22, 2013 at 15:58

CMDCMDcmd

5.64415 Huy hiệu bạc29 Huy hiệu đồng15 silver badges29 bronze badges

4

import datetime
d = datetime.date[2012, 9, 1]
print type[d] is datetime.date

> True

Đã trả lời ngày 22 tháng 4 năm 2013 lúc 15:59Apr 22, 2013 at 15:59

5

Theo tài liệu lớp

from datetime import datetime
6 là cha mẹ cho lớp
from datetime import datetime
4. Và phương thức
from datetime import datetime
8 sẽ cung cấp cho bạn
from datetime import datetime
9 trong mọi trường hợp. Nếu bạn cần phân biệt
from datetime import datetime
4 với
from datetime import datetime
6, bạn nên kiểm tra tên của lớp

import datetime

datetime.datetime.now[].__class__.__name__ == 'date' #False
datetime.datetime.now[].__class__.__name__ == 'datetime' #True
datetime.date.today[].__class__.__name__ == 'date' #True
datetime.date.today[].__class__.__name__ == 'datetime' #False

Tôi đã phải đối mặt với vấn đề này khi tôi có các quy tắc định dạng khác nhau cho ngày và ngày với thời gian

Đã trả lời ngày 27 tháng 11 năm 2018 lúc 8:38Nov 27, 2018 at 8:38

Trong Python 3.8.4, có thể kiểm tra rằng phương pháp có

In [30]: isinstance[x, datetime.date]
---------------------------------------------------------------------------
TypeError                                 Traceback [most recent call last]
/ in []
----> 1 isinstance[x, datetime.date]

TypeError: isinstance[] arg 2 must be a class, type, or tuple of classes and types
2 sẽ thất bại khi kiểm tra xem
from datetime import datetime
4 có phải là liệu
from datetime import datetime
6 hay
from datetime import datetime
4 vì cả hai kiểm tra sẽ cung cấp
from datetime import datetime
9.

    >>> from datetime import datetime, date
    >>> mydatetime = datetime.now[]
    >>> mydate = mydatetime.date[]
    >>> isinstance[mydatetime, datetime]
    True
    >>> isinstance[mydatetime, date]
    True

Điều này là do thực tế là

from datetime import datetime
4 là một lớp con của
from datetime import datetime
6 như được giải thích trong câu trả lời khác này:

Một thể hiện của một lớp dẫn xuất cũng là một ví dụ của một lớp cơ sở,

Do đó, khi phân biệt giữa

from datetime import datetime
4 và
from datetime import datetime
6, nên sử dụng
import datetime
1 thay thế:

    >>> type[mydatetime] == date
    False
    >>> type[mydate] == date
    True
    >>> type[mydate] == datetime
    False
    >>> type[mydatetime] == datetime
    True

Đã trả lời ngày 11 tháng 8 năm 2021 lúc 14:10Aug 11, 2021 at 14:10

Nếu mã hiện tại của bạn đã dựa vào

import datetime
2, bạn cũng có thể chỉ cần nhập
from datetime import datetime
6

from datetime import datetime
0

Đã trả lời ngày 1 tháng 12 năm 2015 lúc 19:21Dec 1, 2015 at 19:21

Dmitry B.Dmitry B.Dmitry B.

8.9003 huy hiệu vàng41 Huy hiệu bạc63 Huy hiệu đồng3 gold badges41 silver badges63 bronze badges

Trong Python 3.5,

import datetime
4 hoạt động với tôi:

from datetime import datetime
1

Đã trả lời ngày 5 tháng 5 năm 2016 lúc 6:43May 5, 2016 at 6:43

Fedorquifedorquifedorqui

261K99 Huy hiệu vàng527 Huy hiệu bạc579 Huy hiệu Đồng99 gold badges527 silver badges579 bronze badges

Nếu bạn đang sử dụng gói Freezegun trong các thử nghiệm, bạn có thể cần phải kiểm tra isinstance thông minh hơn hoạt động tốt với fakedate và ban đầu ngày/thời gian ban đầu bên trong với bối cảnh freeze_time:freezegun package in tests you may need to have more smart isinstance checks which works well with FakeDate and original Date/Datetime beeing inside with freeze_time context:

from datetime import datetime
2

và các thử nghiệm để xác minh việc thực hiệntests to verify the implementation

from datetime import datetime
3

Đã trả lời ngày 29 tháng 6 năm 2020 lúc 15:46Jun 29, 2020 at 15:46

Pymenpymenpymen

4.97540 Huy hiệu bạc33 Huy hiệu đồng40 silver badges33 bronze badges

Làm thế nào để bạn kiểm tra xem giá trị là một ngày trong Python?

Làm cách nào để kiểm tra xem một chuỗi là dấu thời gian 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"].

Ngày [] làm gì trong Python?

Phương thức cá thể ngày [] của lớp DateTime Python trả về một phiên bản ngày.Chỉ sử dụng phương thức này thông tin ngày không bao gồm thông tin thời gian được lấy từ một thể hiện DateTime.returns a date instance. Using this method only the date information excluding the time information is retrieved from a datetime instance.

Là một ngày là một chuỗi trong Python?

Ví dụ 1: DateTime to String bằng cách sử dụng strftime [] ở đây, năm, ngày, thời gian và ngày_time là chuỗi, trong khi bây giờ là một đối tượng DateTime.year , day , time and date_time are strings, whereas now is a datetime object.

Loại đối tượng nào là ngày trong Python?

Đó là một lớp đối tượng thời gian.Nó độc lập với bất kỳ ngày cụ thể.Nó có các thuộc tính giờ, phút, thứ hai, microsecond và tzinfo.Đó là một tập hợp các ngày và thời gian kết hợp.time object class. It is independent of any particular day. It has hour, minute, second, microsecond and tzinfo attributes. It is a combined set of dates and times.

Bài Viết Liên Quan

Chủ Đề