Skip to main content

datetime_schema

Returns a schema that matches a datetime value, e.g.:

from datetime import datetime
from pydantic_core import SchemaValidator, core_schema

schema = core_schema.datetime_schema()
v = SchemaValidator(schema)
now = datetime.now()
assert v.validate_python(str(now)) == now
def datetime_schema(
strict: bool | None = None,
le: datetime | None = None,
ge: datetime | None = None,
lt: datetime | None = None,
gt: datetime | None = None,
now_op: Literal['past', 'future'] | None = None,
tz_constraint: Literal['aware', 'naive'] | int | None = None,
now_utc_offset: int | None = None,
microseconds_precision: Literal['truncate', 'error'] = truncate,
ref: str | None = None,
metadata: dict[str, Any] | None = None,
serialization: SerSchema | None = None
) - > DatetimeSchema

Returns a schema that matches a datetime value.

Parameters

NameTypeDescription
strict`boolNone` = None
le`datetimeNone` = None
ge`datetimeNone` = None
lt`datetimeNone` = None
gt`datetimeNone` = None
now_op`Literal['past', 'future']None` = None
tz_constraint`Literal['aware', 'naive']int
now_utc_offset`intNone` = None
microseconds_precisionLiteral['truncate', 'error'] = truncateThe behavior when seconds have more than 6 digits or microseconds is too large
ref`strNone` = None
metadata`dict[str, Any]None` = None
serialization`SerSchemaNone` = None

Returns

TypeDescription
DatetimeSchemaA dictionary representing the core schema for datetime validation and serialization.