2010-10-18 5 views

ответ

1

Большая проблема заключается в том, что, как упоминалось в других сообщениях, вы неявно назначаете результат DateTime операции преобразования строковой переменной. Это даже не передало компилятор в C#, поэтому вы входите в сферу того, как VB работает с этими неявными назначениями, и вы, вероятно, не хотите быть там, потому что, если какая-то часть спецификации языка изменится в новой версии Framework, и вы попробуйте перенести свой код, у вас может быть неприятная ошибка, чтобы попытаться найти (может быть, не так важно здесь, но в других случаях - да). Лучше всего было бы переписать блок кода, чтобы назначить операцию преобразования объекту DateTime, но более простым решением было бы сбросить .ToString() в конце строки Convert.ToDateTime (testdate) (т. Е. Testdate = Convert. DateTime (testdate) .ToString(), который оставит testdate с датой и временной меткой, отформатированной в текущей культуре (поскольку теперь вы выполняете явное преобразование между DateTime и целевой строкой).

3

Вы должны присвойте результат Convert.ToDateTime объекту DateTime, а не строке.

Dim testdate As String = "29/10/2010" 
Dim date As DateTime = Convert.ToDateTime(testdate) 
Response.Write(date) 

Это будет печатать часы, а также дату в формате по умолчанию для вашего устройства.

0

Как четко задокументировано here, нет, это не спроектированное поведение.
  '05/01/1996 'конвертируется в 5/1/1996 12:00:00 AM.
  'Tue Apr 28, 2009' преобразуется в 28.04.2009 12:00:00 AM.

Возможно, что this article может обеспечить понимание.

+0

Возвращение am/pm или 24h зависит от языка/культуры вашего компьютера, если вы не указали его в своей программе. Таким образом, вывод по умолчанию date.ToString() очень индивидуален. –

+0

мой сайт настроен на en-GB в web.config, но сервер базы данных где информация должна идти, установлена ​​в en-US – Phil

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