Tengo la teoría de por qué el siguiente código no está produciendo los resultados que necesita:¿Cuál es el método más fácil para eliminar la parte de un milisegundo de DateTime.UctNow.TimeOfDay?
endDate = DateTime.UtcNow.AddDays(1).ToShortDateString() + " " +
DateTime.UtcNow.TimeOfDay.Subtract(
new TimeSpan(0, 0, 0, 0, DateTime.UtcNow.TimeOfDay.Milliseconds));
El procesador debe calcular el DateTime.UtcNow.TimeOfDay.Milliseconds
, y debido a la duración del tiempo de una única señal de la CPU (y el tiempo para procesar esta propiedad y devolver un resultado), no denota que DateTime.UtcNow.TimeOfDay.Milliseconds
restará la cantidad exacta de milisegundos especificado por el DateTime.UtcNow.TimeOfDay
lo que necesito saber, ¿cuál es el método más simple y más eficaz para eliminar la cantidad de milisegundos desde DateTime.UtcNow.TimeOfDay
, sin tener que usar una gran cantidad de p tiempo rocessor? Esta aplicación mía es bastante grande, y este problema es bastante simple. Pero cuando se implementa esta aplicación, no hay espacio para que sea inestable. Este milisegundo debe recortarse porque se envía a un procedimiento almacenado en SQL Server, y este procedimiento almacenado específico no admite milisegundos en DateTimes. También me encuentro con este problema comúnmente, pero normalmente convierto la fecha en cadena (que es un molde por sí mismo), divido la cadena en el punto en milisegundos, y uso la posición de índice 0 para obtener el tiempo que necesito. ¿Hay una forma más corta y efectiva?
La estabilidad y la velocidad son las más importantes para mí.
Gracias de antemano
¿No puedes simplemente hacer '_myDate.Milliseconds = 0;'? – Alxandr
@Alxandr Las instancias 'DateTime' son inmutables, por lo que [' Milliseconds'] (http://msdn.microsoft.com/en-us/library/system.datetime.millisecond.aspx) no tiene propiedad establecida. –
¿Por qué dividirse cuando puede especificar el formato de cadena sin milisegundos, podría analizarlo de nuevo en 'DateTime' – V4Vendetta