2011-12-27 8 views
0

Я использую следующую функцию для преобразования переменной String в Date. Вычтите день из него и преобразуйте дату в строку. Код выглядит следующим образомФормат даты в vb.net

Dim edate As String 
Dim expenddt As Date 

edate = txtenddt.Text 
expenddt = Date.ParseExact(edate, "dd/MM/yyyy", System.Globalization.DateTimeFormatInfo.InvariantInfo) 
expenddt = expenddt.AddDays(-1) 

Dim asd As String = expenddt.ToString 

Если edate имеет значение 29/12/2011, чем значение в expenddt получает изменено на другой формат и значение в expenddt приходит 12/29/2011 и позже, после вычитания день expenddt является 12/28/2011 и чем тогда, когда я преобразовать его обратно в строку я получаю значение в asd как «12/28/2012 12:00:00 AM»

Я изменил формат даты в моей системе до d/M/yyyy в разделе «Региональный и язык» в панели управления, но я все еще получаю другой формат в expenddt

Может ли кто-нибудь объяснить мне, почему это происходит? Как я могу сохранить формат даты в дд/мм/гггг, например 29/12/2011 и после вычитанием день он должен оставаться 28/12/2011 и не 12/29/2011

+1

Я не могу объяснить, почему (он должен использовать формат, установленный с помощью панели управления), но почему бы вам просто не указать формат при вызове ToString? – andygjp

+0

@andygjp. Это я никогда не пробовал. Большое вам спасибо. На самом деле я новичок в vb, я знаю, как мы это делаем на C#. Можете ли вы рассказать мне, как указать формат? это .ToString ("dd/mm/yyyy")? – Ishan

+0

@andygjp Это действительно решило мой вопрос. – Ishan

ответ

2

Использование Date.ToString() для преобразования даты в строку с форматом dd/MM/yyyy.

Dim asd As String = expenddt.ToString("dd/MM/yyyy") 
0

Просто попробуйте это:

Dim dateString As String = "Mon 16 Jun 8:30 AM 2008" 
Dim format As String = "ddd dd MMM h:mm tt yyyy" 
Dim dateTime__1 As DateTime = DateTime.ParseExact(dateString, format, CultureInfo.InvariantCulture) 

надежда в мае этого года полезно ....

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