El hecho de que la fecha esté escrita en el esquema JSON no significa que el validador deba verificar la fecha.

El esquema dice `format: date`, pero la fecha incorrecta pasa la verificación. Es posible que esto no signifique necesariamente que haya un error en la biblioteca. La forma en que se maneja `format` depende de la configuración del validador. Cuando obtenga una "verificación exitosa", primero pregunte si verificó el tipo, la estructura o también verificó la semántica de la fecha.

format: date está escrito en el esquema JSON, pero una fecha inexistente pasa la verificación. Por lo general, esto no es un error en la biblioteca. La forma en que se maneja format depende de la configuración del validador. Cuando encuentre un resultado de "verificación exitosa", primero debe confirmar si verifica el tipo, la estructura o también la semántica de la fecha.

Este artículo es adecuado para desarrolladores y revisores que necesitan realizar una verificación estructurada de los datos del documento y se preocupan por la precisión de los campos de fecha. Después de leer esto, podrá determinar qué significa aprobar la verificación y utilizar pruebas de contraejemplo para corregir las reglas de fecha.

Este artículo utiliza muestras sintéticas para demostrar el método de procesamiento. El código ha sido verificado con ejemplos en un entorno aislado y no es garantía de todos los archivos reales ni del rendimiento del producto. Antes de procesar documentos importantes, conserve los originales y revíselos de acuerdo con los límites y elementos de aceptación del texto.

¿Qué verifica exactamente la verificación de fecha del esquema JSON? Conclusión de una frase

Primero confirme si la verificación format está habilitada en el validador y luego confirme si las reglas semánticas de la fecha (si realmente existe y cómo interpretarla) son responsables.

tu situaciónPrácticas recomendadasrazón
Verifique solo format: date con el validador predeterminadoPrimero confirme si FormatChecker está habilitado explícitamenteLa forma en que se maneja format depende de la configuración del validador
Necesidad de identificar fechas como 2026-02-30Ponlo en el conjunto de prueba como contraejemplo.La cadena parece una fecha, lo que no significa que exista en el calendario.
Se desconoce el orden del día y mes de la fecha de origen.Marque la ambigüedad, sin conjeturas automáticasPasar la verificación date solo puede mostrar que el valor convertido es válido
Campos con hora y zona horaria.Utilice protocolos de tiempo independientesLos primeros diez caracteres no deben interceptarse ni procesarse de manera casual.
Se utiliza para verificar la fecha de traducción.Guarde tanto raw_text como los valores normalizadosLos revisores necesitan ver tanto el contenido original como la explicación sistemática.

Dos controles aparentemente idénticos

2026-02-30 es una cadena y parece una fecha, pero no existe el día 30 en febrero. Sólo comprobar las formas regulares permitirá solucionar este tipo de problemas. A continuación se utiliza jsonschema de Python para comparar los resultados del validador predeterminado y habilitar explícitamente FormatChecker.

Probar la configuración con una fecha imposible

from jsonschema import Draft202012Validator, FormatChecker

schema = {"type": "string", "format": "date"}
structural = Draft202012Validator(schema)
strict = Draft202012Validator(schema, format_checker=FormatChecker())

def valid(v, value):
    return not list(v.iter_errors(value))

assert valid(structural, "2026-02-30")
assert not valid(strict, "2026-02-30")
assert valid(strict, "2024-02-29")
assert not valid(strict, "2025-02-29")
assert not valid(strict, "26/09/2026")
assert not valid(strict, 20260926)

El ejemplo sintético solo verifica date. Otros formatos pueden tener dependencias opcionales o diferencias de implementación y deben probarse caso por caso en un entorno cerrado. Los nombres de formatos desconocidos no pueden interpretarse como que se haya implementado algún tipo de verificación, y los errores ortográficos pueden darle una sensación de seguridad sin sentido.

El formato de fecha no es una regla de interpretación de fechas

03/04/2026 en la fuente puede significar 4 de marzo o puede significar 3 de abril. Se requiere la región de origen, la especificación de campo o el protocolo explícito antes de convertirlo al formato ISO. Pasar la verificación date solo puede probar que el valor convertido es válido, pero no puede probar que haya seleccionado el mes correcto.

Información fuenteque hacerque no hacer
Fecha del calendario que no existeError y comprueba la fuenteDesplazarse automáticamente al mes siguiente
El orden del sol y la luna no está claroAmbigüedad de marcaAdivinaciones basadas en el lenguaje del servidor
Incluye la hora y la zona horariaUtiliza acuerdos de tiempo independientesRecortar aleatoriamente los primeros diez caracteres
El campo está vacíoGestionado según la regla que faltabaComplementa la fecha del día

Incluir configuración en pruebas de regresión

El conjunto de pruebas contiene al menos tres tipos de valores: un día bisiesto válido, un día bisiesto ilegal y un valor incorrecto. Ejecutar estos contraejemplos durante el despliegue es más efectivo que simplemente comprobar si el archivo de esquema existe. Si el servicio se implementa en varios lenguajes, el mismo conjunto de pruebas debe validarse por separado, y no se debe asumir que el comportamiento por defecto de dos validadores es idéntico.

La revisión de la traducción mantiene la fecha original

Al utilizar el resultado de la extracción de fecha para la verificación de traducción de OmniDoc, se recomienda guardar tanto los valores de raw_text como los normalizados. Los revisores deben ver "cuál es el contenido original" y "cómo lo interpreta el sistema" para identificar diferencias en la traducción, extracción o conversión de formatos.

Referencias: Cadena y formato del esquema JSON.

📊 Comparación de núcleos

Elementos de comparaciónValidador por defectoActivar explícitamente FormatChecker
Alcance de la inspecciónTipos y estructuraAdemás, revisa el formato de la declaraciónformat
Conclusión sobre 2026-02-30No puedes asumir que te van a rechazarSe necesitan contraejemplos para las pruebas en el mundo real que lo confirmen
El significado de pasar a travésEsto no significa que la fecha sea semánticamente correctaSigue siendo necesario verificar la fecha de explicación en la fecha laboral

🎯 ¿Qué método te conviene?

Si solo necesitas confirmar que el campo es una cuerda o tiene la estructura correcta

El validador por defecto suele ser suficiente, pero ten en cuenta que no necesariamente comprueba la semántica de fechas.

Si necesitas confirmar que la fecha realmente existe

Activa explícitamente FormatChecker y verifica con contraejemplos como 2026-02-30.

Si quieres verificar la fecha en el archivo fuente

Primero, confirma las reglas fuente para el orden día-mes, luego guarda el texto original y los valores normalizados.

Si tu servicio se despliega en varios idiomas

Ejecuta el mismo conjunto de pruebas por separado en cada implementación.

❓ Preguntas frecuentes (FAQ)

1. El esquema escribió format: date, así que ¿por qué pueden pasar fechas incorrectas?

El manejo de format depende de la configuración del validador; por defecto, la semántica de fecha puede no estar comprobada.

2. ¿Por qué 2026-02-30 es un valor útil para la prueba?

Parece una fecha, pero febrero no tiene el trigésimo día. Centrarse solo en la apariencia pasará por alto este tipo de problemas.

3. ¿Qué pasa si usas un nombre de formato desconocido?

No debe considerarse que ha sido revisado; los errores ortográficos pueden darte una falsa sensación de seguridad.

4. ¿Cómo debería convertirse 03/04/2026?

Se requiere la región de origen, la descripción del campo o un acuerdo claro. De lo contrario, es imposible saber si representa el 4 de marzo o el 3 de abril.

📝 Resumen

Superar una verificación solo significa que los datos cumplen las normas declaradas y no que todas las fechas sean correctas. Primero, confirma el alcance de inspección del validador y luego fija el procesamiento de fechas con contraejemplos y reglas de fuente para obtener resultados más fiables.

Experiencia ahora: Sube tu documento para empezar a traducir, conservando el formato original

Actualizado 2026-11-13