VB.NET - Невозможно ввести двухзначный день и месяц при преобразовании строки в дату - PullRequest
0 голосов
/ 01 февраля 2019

Мне трудно взять строку и преобразовать ее в объект Date vb.net, при этом требуются двузначные день и месяц.Пожалуйста, рассмотрите следующий пример формы, используя сегодняшнюю дату.(02/01/2019)

    Dim myDate As Date = Date.Now

    Dim myDateString = String.Format("{0:D2}/{1:D2}/{2:D4}", myDate.Month, myDate.Day, myDate.Year)

    myDate = DateTime.ParseExact(myDateString, "MM/dd/yyyy", CultureInfo.InvariantCulture, DateTimeStyles.None)

    Label1.Text = myDate 'This will show "2/1/2019"

    Label2.Text = myDateString 'This will show "02/01/2019"

В этой ситуации Label1.Text остается "1.02.2017", а Label2.Text - "01.02.2009".Независимо от того, что я пробовал, похоже, что фактическое преобразование из правильно отформатированной строки в объект Date удалит эти нули.У кого-нибудь есть мысли о том, как я могу применить формат "MM / dd / yyyy" при преобразовании в объект Date?

Заранее спасибо,

1 Ответ

0 голосов
/ 02 февраля 2019

Следует учитывать, что переменная DateTime не имеет формата.Это просто число, выражающее Тики , истекшие из начального DateTime.MinValue (1/1/0001).
У него нет памяти, которую вы создали с использованием определенного анализатора форматирования.

Итак, когда вы назначаете дату для строки, как вы делаете в своем

Label1.Text = myDate

, тогда вы запрашиваете ToString представление этой даты.Вывод этого метода без параметра форматирования будет таким, каким его установят параметры вашей локали.Если вы хотите форсировать требуемый вывод, вам нужно указать метод даты ToString , в каком формате вы хотите вывод

Label1.Text = myDate.ToString("MM/dd/yyyy")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...