Tengo un objeto DateTime que puede o no contener alguna información de fecha/hora. Con eso necesito reemplazar el tiempo con mi nuevo tiempo independientemente de la fecha y viceversa. ¿Cómo lograría esto? No puedo ver nada obvio que no sea la creación de dos nuevos objetos DateTime, uno con la fecha anterior/nueva y otro con la hora antigua/nueva y la concatenación. Seguramente debe haber una mejor manera que esto?Reemplazar una sección de fecha y hora en un objeto DateTime en C#
Respuesta
que iba a escribir dos o tres métodos de extensión:
public static DateTime WithTime(this DateTime date, TimeSpan time)
{
return date.Date + time;
}
public static DateTime WithDate(this DateTime original, DateTime newDate)
{
return newDate.WithTime(original);
}
public static DateTime WithTime(this DateTime original, DateTime newTime)
{
return original.Date + newTime.TimeOfDay;
}
(Usted realmente no necesita tanto de las segundas métodos, pero en ocasiones puede ser más simple si que está encadenando un montón de llamadas.)
Tenga en cuenta que no va a crear ningún objetos en términos de artículos en el montón, como DateTime
es una estructura.
DateTime es una estructura inmutable.
La única opción es construir una nueva estructura DateTime basada en sus dos valores existentes. Este es el mejor enfoque. Por suerte, se trata de un chiste:
DateTime CreateNewDateTime(DateTime date, DateTime time)
{
return new DateTime(date.Year, date.Month, date.Day, time.Hour, time.Minute, time.Second);
}
Esto puede no ser exactamente lo que estás buscando, pero la clase DateTime tiene una serie de métodos Añadir (AddMinutes(), AddDays(), etc.). Digo esto podría no ser lo que usted está buscando, ya que estos devuelven un DateTime, por lo que tendría que hacer algo como
myDate = myDate.AddMinutes(60);
de Gaza el tiempo de una fecha y hora actuales escribiendo .Date
DateTime new = oldDate.Date;
Añadir su tiempo ya sea agregando las horas, los minutos & segundos individual
DateTime new = oldDate.Date.AddHours(14).AddMinutes(12).AddSeconds(33);
o todos a la vez
DateTime new = oldDate.Date.AddSeconds(51153);
o mediante la adición de un intervalo de tiempo()
DateTime new = oldDate.Date.Add(new TimeSpan(14,12,33));
- 1. Unir fecha y hora con DateTime en C#
- 2. Inserte una tzinfo en fecha y hora
- 3. cómo ordenar una colección por fecha y hora en C#
- 4. C++ fecha y hora
- 5. Analizando una información de fecha JSON en un C# DateTime
- 6. ¿Cómo convertir una cadena de fecha a un objeto DateTime?
- 7. Cómo separar FECHA y HORA desde DATETIME en MySQL
- 8. Combina la fecha y la hora cuando la fecha es un DateTime y la hora es una cadena
- 9. Obteniendo solo hora/minuto de fecha y hora
- 10. Fecha y hora en Groovy
- 11. cómo convertir una cadena de fecha y hora al objeto datetime?
- 12. Almacenar una fecha corta en un objeto DateTime
- 13. Cómo analizar una cadena en un objeto DateTime en Perl?
- 14. Mysql insertar fecha y hora aleatorias en un rango de fecha y hora dado
- 15. ¿Cómo persistir el tipo de fecha y hora mientras se almacena un objeto de fecha y hora en una tabla de datos?
- 16. convertido al objeto de fecha y hora
- 17. ¿Cómo restar una fecha y hora de otra fecha y hora?
- 18. Cómo convertir una cadena a un formato de fecha y hora específico en C#?
- 19. Al almacenar una fecha y hora en el servidor sql (tipo de fecha y hora), ¿en qué formato lo almacena?
- 20. cadena de fecha/hora objeto en Android
- 21. C#: Leer/Escribir Fecha y hora desde/en XML
- 22. Creando DATETIME a partir de FECHA y HORA
- 23. DateTime En C#
- 24. Conversión de fecha y hora a hora POSIX
- 25. Lectura de una fecha y hora en sqlite3
- 26. Combina dos variables de fecha y hora en una
- 27. MySQL: inserte fecha y hora en otro campo de fecha y hora
- 28. Formato Excepción: fecha y hora
- 29. Convertir cadena a fecha y hora en C# .net
- 30. Cálculo de fecha y hora pasado en C#