2010-08-18 2 views

ответ

3
Dim lastNight As DateTime = DateTime.Today.AddHours(-4) 

Dim lastNightString As String = lastNight.ToString("y-M-d HH:mm:ss") 
+0

+1: Действительно, гораздо более элегантный, чем '.AddDays (-1) .AddHours (20)'. Хороший. –

0

Попробуйте

Dim lastEvening as DateTime = DateTime.Today.AddDays(-1).AddHours(20) 

отформатированный как просили

Dim formattedLastEvening as string = lastEvening.ToString("y-M-d HH:mm:ss") 
+0

Пару nitpicks: * (1) * Использование 'AddDays (-1) .AddHours (20)' даст неправильные результаты, когда она пересекает DST-граница, которая обычно происходит в ранние часы утра; * (2) * Строка 'Y-M-D' строки формата недействительна, вероятно, это будет' y-M-d'. – LukeH

+0

@ Luke: Вы, конечно, правы, и изменили его на 'y-M-d'. –

0

Там, наверное, более простой способ, но это, как я бы, вероятно, сделать это в C#:

DateTime MyDate = DateTime .Today.AddHours (20 - DateTime.Today.Hour) .AddMinutes (0 - DateTime.Today.Minute) .AddSeconds (0 - DateTime.Today.Second) .Add Миллисекунды (0 - DateTime.Today.Millisecond);

Тогда для форматирования найти что-то вдоль линий: http://msdn.microsoft.com/en-us/library/8kb3ddd4.aspx

Смежные вопросы