Saltar al contenido

Eliminar horas: segundos: milisegundos en el objeto DateTime

Nuestros mejores desarrolladores agotaron sus reservas de café, buscando noche y día por la solución, hasta que Alonzo encontró el hallazgo en Gogs por lo tanto en este momento la comparte con nosotros.

Solución:

Para responder a su pregunta, no, tendría que almacenarlo en un tipo diferente. La elección más sencilla es utilizar un string.

string date = dateTime.ToString("MM:dd:yyyy");

Sin embargo, también recomiendo encarecidamente no almacenar fechas internamente en su programa como cadenas. Esto hará que sea difícil hacer cálculos o comparaciones sobre ellos. Además, le aconsejo que no fuerce una cultura específica para su representación de fecha, ya que significa que su aplicación probablemente no funcionará como se espera en otras culturas además de la suya.

Un enfoque un poco más sofisticado es crear una clase personalizada que anule ToString. Sin embargo, también evitaría esto, porque seguirá siendo difícil usar su tipo con las funciones de biblioteca estándar. Tendrás que convertir de un lado a otro todo el tiempo.

Simplemente déjelo como DateTime y haga la conversión a string solo en la capa de presentación. Puedes usar DateTime.ToShortDateStringpara imprimir una cultura amigable para el usuario consciente string.

datetime DateWithTimeNoSeconds = 
DateTime.Now.Date.AddHours(DateTime.Now.Hour).AddMinutes(DateTime.Now.Minute);

Esto obtiene la fecha actual y la fecha de la hora y agrega horas y minutos.

Si bien en la mayoría de los casos estoy de acuerdo con Mark Byers, tuve una situación en la que necesitaba almacenar una fecha y hora que solo era granular a la hora. Almacenar minutos y segundos no solo sería superfluo, sino también inexacto. El usuario simplemente seleccionó una fecha y una hora, por lo que mientras que la fecha y la hora serían seleccionadas por el usuario, los minutos y los segundos se establecerían en la hora actual.

Quitar minutos y segundos es muy fácil en este caso. Aquí está el código:

scheduledDate = scheduledDate.AddMinutes(
    scheduledDate.Minute * -1).AddSeconds(
    scheduledDate.Second * -1);

Luego lo almaceno en la base de datos como una fecha y hora completa, con minutos y segundos siempre 0.

valoraciones y comentarios

No se te olvide difundir este enunciado si te valió la pena.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *