Mam teorię, dlaczego następujący kod nie daje rezultatów, których potrzebuję:Jaka jest najłatwiejsza metoda usunięcia części Milisekundy z DateTime.UctNow.TimeOfDay?
endDate = DateTime.UtcNow.AddDays(1).ToShortDateString() + " " +
DateTime.UtcNow.TimeOfDay.Subtract(
new TimeSpan(0, 0, 0, 0, DateTime.UtcNow.TimeOfDay.Milliseconds));
Procesor musi obliczyć DateTime.UtcNow.TimeOfDay.Milliseconds
, a ze względu na długość czasu jednego kleszcza CPU (a czasem do przetworzyć tę właściwość i zwracają wynik), to nie oznacza, że DateTime.UtcNow.TimeOfDay.Milliseconds
odejmie dokładną ilość milisekund określonych przez DateTime.UtcNow.TimeOfDay
muszę wiedzieć, co jest najprostszym i najbardziej skutecznym sposobem, aby usunąć ilość milisekund od DateTime.UtcNow.TimeOfDay
, bez konieczności korzystania z ogromnej ilości p czas rocessor? Ta aplikacja jest dość duża, a ten problem jest dość prosty. Ale kiedy ta aplikacja zostanie wdrożona, nie ma miejsca na jej niestabilność. Te milisekundy muszą zostać przycięte, ponieważ są wysyłane do procedury składowanej w SQL Server, a ta konkretna procedura składowana nie obsługuje milisekund na DateTimes. Zazwyczaj napotykam również ten problem, ale zwykle konwertuję datę na ciąg (który jest rzutem własnym), dzielę ciąg znaków na kropkę w milisekundach i używam pozycji indeksu 0, aby uzyskać czas, którego potrzebuję. Czy istnieje krótszy, skuteczniejszy sposób?
Najważniejsze jest dla mnie stabilność i szybkość.
góry dzięki
Nie możesz po prostu zrobić '_myDate.Milliseconds = 0;'? – Alxandr
@Alxandr Instancje 'DateTime' są niezmienne, dlatego [' Milliseconds'] (http://msdn.microsoft.com/en-us/library/system.datetime.millisecond.aspx) nie ma właściwości set. –
Dlaczego dzielić, gdy można określić format ciągu bez milisekund, można następnie sparsować go ponownie do 'DateTime' – V4Vendetta