Translate

lunes, 19 de abril de 2021

NET 6: Date y Time


Un problema de larga data con la biblioteca de clases base de .NET es la incapacidad de representar por separado los valores de fecha y hora. Como parte de .NET 6, las nuevas clases DateOnly y TimeOnly buscan corregir esto.

Avance rápido a .NET 6 y obtenemos la propuesta DateOnly y TimeOnly. Como implican los nombres, estas estructuras están diseñadas para contener solo una fecha o solo una hora. El nombre original de la estructura DateTime era solo Date. Esto continúa en VB, donde la palabra clave Date continúa haciendo referencia a DateTime. Por lo tanto, se eligió el nombre DateOnly para evitar confusiones.

Otra razón por la que se eligió el nombre DateOnly es que DateTime.Date ya devuelve un valor DateTime. Esto no se puede cambiar, pero los nuevos programadores esperan que devuelva una fecha. Al llamar al tipo DateOnly, la nueva propiedad coincidente se puede llamar DateTime.DateOnly.

De manera similar, TimeOfDay es problemático ya que muchas propiedades y métodos lo usan para referirse a un valor de DateTime o TimeSpan.

DateOnly y TimeOnly no implementarán el atributo Serializable. En .NET Core y versiones posteriores, este atributo se considera obsoleto, al igual que las bibliotecas de serialización que dependen de él.

En este momento, no hay planes para abordar escenarios avanzados como el manejo de la zona horaria real y el período frente a la duración. Este rol lo maneja en gran parte la biblioteca Noda Time. Basado en Joda Time de Java, también le permite representar fechas parciales como "3 de enero" o "marzo de 2021", donde el año, el día o el mes faltan intencionalmente.

Dejo link : https://www.infoq.com/news/2021/04/Net6-Date-Time/