Estoy recuperando datos de un iSeries donde hay campos de fecha y hora separados. Quiero unirlos en un campo DateTime en mi proyecto C#. No veo una manera de agregar solo una hora al campo DateTime. ¿Cómo sugerirías lograr esto?Unir fecha y hora con DateTime en C#
Respuesta
¿Cómo se almacenan? Suponiendo que la parte de fecha se almacena como DateTime
de la medianoche del día en cuestión y el tiempo es TimeSpan
, puede simplemente agregarlos.
DateTime date = ...;
TimeSpan time = ...;
DateTime result = date + time;
Puede construir fácilmente un TimeSpan desde su campo "tiempo".
Una vez que tenga que acaba de hacer:
TimeSpan time = GetTimeFieldData();
dateField = dateField.Add(time);
Usted puede hacer esto con bastante facilidad:
DateTime dateOnly;
DateTime timeOnly;
...
DateTime combined = dateOnly.Date.Add(timeOnly.TimeOfDay);
TimeOfDay
devuelve un TimeSpan
, que luego se agrega a la fecha.
Editar (gracias a los comentaristas a continuación) - para estar seguro, utilice dateOnly.Date
para asegurar la parte de la fecha solamente.
Una palabra de precaución al espectador aquí donde debe asegurarse de que 'DateTime dateOnly' solo contenga una fecha diferente, con un TimeSpan suficientemente grande, cuando preformas el 'Agregar', ¡aumentarás el día en 1! – Coops
@CodeBlend es correcto, esto me pasó a mí. La mejor manera de cubrirse es hacer: 'DateTime combined = dateOnly.Date.Add (timeOnly.TimeOfDay);' –
¡Buena captura, @RodolfoDeLosSantos! Envié una solicitud para actualizar la solución para que coincida con su sugerencia. –
Datetime date = new DateTime(Date1.Year, Date1.Month, Date1.Day, Time1.Hour, Time1.Minute, Time1.Second);
¿No puedes simplemente formatear la parte de la fecha y la parte del tiempo como cadenas separadas, y luego unirlas? A continuación, puede analizar la cadena de regreso a un objeto DateTime
No muy eficiente. – Lazlo
Tenga en cuenta que agregar el tiempo a la fecha no es su mayor problema aquí. Tal como lo mencionó @Reed Copsey, solo crea un DateTime a partir de la fecha y luego .Add
el tiempo.
Sin embargo, debe asegurarse de que la fecha y hora de iSeries (un tiempo Unix muy probablemente) estén en la misma representación que la representación .Net. Por lo tanto, lo más probable es que necesite convertirlo agregándolo a un DateTime el 1 de enero de 1970 también.
Puede agregar TimeSpan
a DateTime
y escribir algo como esto.
// inside consuming function
ISeriesObject obj = getMyObject();
DateTime dt = getDate(obj) + getTime(obj);
private DateTime getDate(ISeriesObject obj)
{
//return a DateTime
}
private TimeSpan getTime(ISeriesObject obj)
{
//return a TimeSpan
}
Esto debería hacer:
var output = date.Date + time.TimeOfDay;
o
var output = new DateTime(date.Year, date.Month, date.Day,
time.Hour, time.Minute, time.Second);
suponer que tanto la variable date
y time
son ambos del tipo DateTime
- 1. C++ fecha y hora
- 2. Problemas de fecha y hora con Mongo y C#
- 3. Cómo separar FECHA y HORA desde DATETIME en MySQL
- 4. Fecha y hora en Groovy
- 5. C#: Leer/Escribir Fecha y hora desde/en XML
- 6. cómo ordenar una colección por fecha y hora en C#
- 7. Reemplazar una sección de fecha y hora en un objeto DateTime en C#
- 8. Creando DATETIME a partir de FECHA y HORA
- 9. Formato Excepción: fecha y hora
- 10. Combina la fecha y la hora cuando la fecha es un DateTime y la hora es una cadena
- 11. Python 3: fecha y hora a fecha y hora: ¿de dónde viene esta hora adicional?
- 12. Convertir cadena a fecha y hora en C# .net
- 13. Obteniendo solo hora/minuto de fecha y hora
- 14. Obtener Fecha y hora actual y el tiempo con [fecha NSDate] fecha y hora
- 15. Inserte una tzinfo en fecha y hora
- 16. MySQL: inserte fecha y hora en otro campo de fecha y hora
- 17. Mysql insertar fecha y hora aleatorias en un rango de fecha y hora dado
- 18. diferencia entre fecha y hora y DateTime2
- 19. DateTime En C#
- 20. convertir hora utc y desplazamiento a DateTime
- 21. Fecha y hora dinámicas con moment.js y setInterval
- 22. Cálculo de fecha y hora pasado en C#
- 23. ¿Cómo restar una fecha y hora de otra fecha y hora?
- 24. Convertir cadena a fecha y hora usando C#
- 25. Convertir cadena a fecha y hora C#
- 26. Semana del año C# de fecha y hora
- 27. marca de tiempo y fecha y hora
- 28. Fecha y hora en java
- 29. ¿Cómo comparar DateTime en C#?
- 30. de fecha y hora
Creo que este funcionará mejor para mí en este caso. ¡Gracias! –
esto solo funcionará si la variable de fecha tiene una parte de tiempo 00:00:00, de lo contrario la variable de tiempo se agregará en la parte superior de la fecha y será un resultado inesperado. – batmaci
@batmaci Sí, eso se establece específicamente en la respuesta. –