Here is the translated HTML with Spanish text, keeping all tags and structure intact, and setting `lang="es"` with the ES language link marked as active. ```html #1880: DateFormatType.java [ES]
EN · DE · RU · FR · ES

#1880: DateFormatType.java

projectforge-common/src/main/java/org/projectforge/common/DateFormatType.java Enum Java — paquete org.projectforge.common, projectforge-common/src/main/java/org/projectforge/common/DateFormatType.java 99 líneas · 20 código · 76 comentarios · 3 en blanco
Enumeración de los formatos predefinidos de fecha/hora utilizados en toda la interfaz de usuario y las capas de exportación de ProjectForge. Define 16 niveles de formato distintos, desde solo fecha simple (DATE_WITHOUT_YEAR) hasta marcas de tiempo ISO 8601 completas (ISO_TIMESTAMP_MILLIS). Sirve como un catálogo de formatos declarativos: las cadenas de patrón de formato reales se resuelven en tiempo de ejecución mediante DateHelper o la configuración regional del usuario, lo que permite el formato de fecha sensible a la configuración regional sin cadenas de patrón codificadas.

Arquitectura

Categorías de Formato

Formatos Solo Fecha

Constante de EnumEjemplo de PatrónCaso de Uso
DATE_WITHOUT_YEARdd.MM. / MM/dd / dd/MMCumpleaños mostrados sin año, listas de día-mes
DATEdd.MM.yyyy / MM/dd/yyyyVisualización general de fechas, campos de fecha en formularios
DATE_WITH_DAY_NAMEE, dd.MM.yyyyVistas de calendario, páginas de programación que muestran el día de la semana
DATE_SHORTdd.MM.yy / MM/dd/yyExportaciones a Excel, vistas de lista compactas
ISO_DATEyyyy-MM-ddConsultas a bases de datos, respuestas de API, intercambio de datos

Formatos de Fecha y Hora

Constante de EnumPrecisiónCaso de Uso
DATE_TIME_SHORT_SECONDSDATE_SHORT + HH:mm:ssRegistros compactos, entradas de pista de auditoría
DATE_TIME_SHORT_MINUTESDATE_SHORT + HH:mmHoras de eventos de calendario, horarios de reuniones
DATE_TIME_MILLISDATE + HH:mm:ss.SSSMarcas de tiempo precisas con milisegundos
DATE_TIME_SECONDSDATE + HH:mm:ssVisualización general de marcas de tiempo, registros de auditoría
DATE_TIME_MINUTESDATE + HH:mmEntradas de hoja de horas, seguimiento de tiempo de proyectos

Formatos Solo Hora

Constante de EnumPatrónCaso de Uso
TIME_OF_DAY_SECONDSHH:mm:ssVisualizaciones de duración, vistas tipo cronómetro
TIME_OF_DAY_MINUTESHH:mmEntradas de hora, horas de reuniones, horarios de apertura

Formatos de Marca de Tiempo ISO 8601

Constante de EnumPatrónCaso de Uso
ISO_TIMESTAMP_MILLISyyyy-MM-dd HH:mm:ss.SSSRegistro de alta precisión, columnas de auditoría de base de datos
ISO_TIMESTAMP_SECONDSyyyy-MM-dd HH:mm:ssRespuestas de API, serialización JSON, endpoints REST
ISO_TIMESTAMP_MINUTESyyyy-MM-dd HH:mmExportación de calendario (iCal), sistemas de programación

Formato Especial

Constante de EnumPatrónCaso de Uso
DAY_OF_WEEK_SHORTEE (lun, mar, ...)Encabezados de semana en vistas de calendario, resumen semanal de hoja de horas

Conciencia de Configuración Regional

Los comentarios Javadoc para DATE y DATE_WITHOUT_YEAR muestran múltiples ejemplos de patrones ("dd.MM.", "MM/dd", "dd/MM"), lo que indica que estas constantes de enumeración representan la intención del formato más que patrones fijos. La cadena de patrón real es resuelta por DateHelper según la configuración regional del usuario:

Esta es una característica de diseño crítica para la base de usuarios internacional de ProjectForge.

Notación de Exportación a Excel

El Javadoc de la constante DATE_SHORT incluye notación específica de Excel: "DD.MM.YY", "MM/DD/YY", "DD/MM/YY". Esto sugiere que las constantes de DateFormatType también son utilizadas por el módulo de exportación a Excel (org.projectforge.business.excel) que asigna estos valores de enumeración a cadenas de formato de celda de Excel, diferentes de los patrones de SimpleDateFormat de Java (el mes es MM en Excel vs MM en Java, pero existen diferencias de mayúsculas).

Relación con DateHelper

Si bien este archivo solo define las constantes de enumeración, la lógica de resolución de formato real reside en DateHelper (en el mismo paquete). Es probable que DateHelper contenga un método getFormat(DateFormatType, Locale) o similar que asigna cada constante de enumeración a una instancia de DateFormat o SimpleDateFormat específica de la configuración regional.

Patrón de Diseño: Enum como Catálogo Declarativo

Esta enumeración sigue un patrón donde el enum sirve como un catálogo declarativo de opciones disponibles, mientras que el comportamiento real se implementa en otro lugar (DateHelper). Esta separación permite:

Los formatos de marca de tiempo ISO utilizan un separador de espacio (yyyy-MM-dd HH:mm:ss) en lugar del separador T estándar ISO 8601 (yyyy-MM-ddTHH:mm:ss). Aunque es común en contextos de bases de datos y visualización, técnicamente no es ISO 8601 estricto. Los nombres de los formatos sugieren cumplimiento ISO, pero los patrones reales son "similares a ISO".
Las 16 constantes de formato cubren un rango completo desde "sin año" hasta "precisión de milisegundos". Esta granularidad refleja los diversos casos de uso de ProjectForge: gestión de hojas de horas (precisión de minutos), informes financieros (precisión de días), pistas de auditoría (precisión de milisegundos), vistas de calendario (día de la semana) y seguimiento de migraciones de bases de datos (marcas de tiempo ISO). Cada formato cumple un requisito específico de UX o de datos.

Historial de Git

868d6abb7 2025 -> 2026
63081666f Encabezados de archivos fuente: 2024-> 2025.
b6092df09 Derechos de autor 2023 -> 2024
ab45d51fa Derechos de autor 2001-2022 -> 2001-2023.
5f7ef41b8 Derechos de autor 2021 -> 2022
ceb63e8a1 Encabezado de código fuente: (C) 2001-2021.
7c79f1922 Derechos de autor del encabezado fuente -> 2020.
dd5ca38ac Derechos de autor de todos los encabezados de archivos Java actualizados o creados.