Я пытаюсь определить формат системной даты от vb.net, который должен соответствовать формату, который будет показан в командной строке cmd.

Пример, если вы вводите date в командной строке cmd (вам может потребоваться запустить его как администратор) он выведет формат, необходимый для вступления в силу изменения даты, аналогично следующему:

The current date is: Sun 05/28/2017 Enter the new date: (mm-dd-yy)

Моя текущая дата, показанная на моей панели задач, также 05/28/2017

От vb.net мне нужно выяснить запрошенный формат, который в данном случае был mm-dd-yy.

Я попытался System.Globalization.CultureInfo.CurrentUICulture.DateTimeFormat.ShortDatePattern(), который вывел dd/MM/yyyy, который не соответствует формату.

3
User5152 29 Май 2017 в 00:53

2 ответа

Лучший ответ

Получил работу, используя это:

Private Function CheckDateFormat1()
    Dim Format As String = DateTimeFormatInfo.CurrentInfo.ShortDatePattern

    If Format.Contains("MMM") Then
        Format = Format.Replace("MMM", "MM")
    ElseIf Format.Contains("MMMM") Then
        Format = Format.Replace("MMMM", "MM")
    End If

    If Format.Contains("dddd") Then
        Format = Format.Replace("dddd", "dd")
    End If

    Return Format
End Function
0
User5152 29 Май 2017 в 00:36

Судя по официальной документации Window по команде «Дата», это просто жестко закодированный вывод, и он будет принимать любой разделитель, если они являются «/», «.» Или «-». Смотрите документацию здесь: https://technet.microsoft.com/en -us / библиотека / cc732776 ( v = ws.11 ) .aspx

Однако команда System.Globalization.CultureInfo.CurrentUICulture.DateTimeFormat.ShortDatePattern() должна выводить формат даты текущей локальной системы пользователя; это или Документация MSDN не так. https: // msdn .microsoft.com / EN-US / библиотека / system.globalization.datetimeformatinfo.shortdatepattern ( v = vs.110 ) .aspx

0
Gorexxar 28 Май 2017 в 23:55