Estoy tan ridículamente frustrado por tener que usar los valores de DateTime para conjuntos de datos que realmente son "solo un día". Los cumpleaños son el ejemplo más común, pero esto aparece en las aplicaciones comerciales todo el tiempo.
Me he acostumbrado a configurar la parte Hora de los registros "solo de fecha" en "mediodía" (lo que evita que la fecha cambie sin importar la zona horaria). Esto parece un truco, y siempre encuentro errores de desarrolladores junior que se tropiezan con este problema.
El tiempo siempre es relativo a un punto fijo. 4PM son 4 horas después del meridiano, o mediodía. El punto más alto del sol en tránsito es observable y nos permite establecer un sistema de coordenadas. 3 horas antes del mediodía (Ante Meridian), 2 horas después del mediodía, 1441899402938 milisegundos desde el 1 de enero de 1970. Para las personas criadas en un mundo cartesiano, esta es una segunda naturaleza.
Pero nuestro calendario es anterior a Descartes. Mi argumento es que se considera más propiamente como una enumeración sobre la cual se aplica una función de módulo. El lunes sigue al domingo, y así sucesivamente hasta llegar al hecho de que el domingo sigue al sábado. No hay positivo ni negativo, es un módulo o valor absoluto.
Del mismo modo con años repitiendo. Cada 365 días (más o menos) hay varios días especiales para mí: cumpleaños, aniversarios, cumpleaños de niños, etc. etc. Las aplicaciones de programación comercial abundan con ejemplos de reuniones cada siete días, el primer martes del mes, etc. Simplemente porque PODEMOS mapear esto en un número de coma flotante, y en verdad mapearlo en dicho número resuelve MUCHOS problemas que son realmente difíciles a la antigua usanza, pero eso no significa que sea la única forma de hacerlo.
El conocimiento y la comprensión de la naturaleza de "clavija cuadrada en un agujero redondo" del uso de DateTimes para almacenar fechas lo convierten en un mejor programador en mi opinión.
¿Existe algún valor en una aplicación explícitamente pensada como una aplicación de programación para definir una clase de fecha, o es "establecer todo el tiempo al mediodía" el mejor enfoque? ¿Qué problemas puede haber con el uso de DateTime y la configuración del componente Time en Noon? ¿Se puede explicar el cambio de zona horaria en este enfoque? He usado MomentJS, pero creo que es solo una mejor clase de fecha.