Формат DateTime без преобразования строки

1

Я пересматриваю некоторые устаревшие коды и есть это...

DateTime dateTime = DateTime.Now;

DateTime from = DateTime.Parse(dateTime.ToString("dd/MM/yyyy 00:00:00"));
DateTime to = DateTime.Parse(dateTime.AddDays(8).ToString("dd/MM/yyyy 23:59:59"));

Затем из и в переменные используются в сравнении Linq/Lambda, поэтому должно быть DateTime.

Я не могу найти способ форматировать переменную DateTime, не преобразовывая ее в строку, а затем обратно в DateTime, это кажется глупым, если не сказать больше.

Конечно, должен быть способ форматировать DateTime без преобразования его в строку, а затем обратно в DateTime?

  • 4
    DateTime не имеет «формата», если он не преобразован в string
  • 0
    Спасибо и Сонеру, и Хабибу ... не мог видеть лес за деревьями;)
Теги:
datetime
datetime-format

2 ответа

5
Лучший ответ

Нет необходимости преобразовывать DateTime в строку и затем анализировать его обратно в DateTime, вместо этого используйте DateTime.Date например:

DateTime from = dateTime.Date;
DateTime to = dateTime.Date.AddDays(9).AddTicks(-1); //or .AddSeconds(-1) if you want 
                                                     // accuracy to a second. 
  • 0
    @DStanley, спасибо, но перед тем, как ты прокомментировал, я вспомнил :)
  • 0
    Незначительная точка, но dateTime.Date.AddDays (8) .AddTicks (-1) дает {13/11/2014 23:59:59}, тогда как DateTime.Parse (dateTime.AddDays (8) .ToString ("дд / мм / гггг 23:59:59" )); дает {14/11/2014 23:59:59}
Показать ещё 1 комментарий
3

DateTime не имеет никакого неявного формата. Строковые представления этого имеют. И Today свойство задает время до полуночи.

DateTime from = DateTime.Today;
DateTime to   = DateTime.Today.AddDays(9).AddSeconds(-1);
  • 0
    Незначительная точка, но DateTime.Today.AddDays (8) .AddSeconds (-1) дает {13/11/2014 23:59:59}, тогда как DateTime.Parse (dateTime.AddDays (8) .ToString ("дд / мм / гггг 23:59:59" )); дает {14/11/2014 23:59:59}
  • 0
    @PaulZahra Да, обновлено :)

Ещё вопросы

Сообщество Overcoder
Наверх
Меню