Формат даты и времени отображается по-разному в формах ISE и Windows - PullRequest
0 голосов
/ 15 апреля 2020

Когда я запускаю Get-Date в ISE, я получаю Wednesday, 15 April 2020 12:38:03 PM, который хочу.

Однако, если я запускаю ту же команду в Windows формах, я получаю 04/15/2020 12:38:03 в другом формате .

Я запускаю их с одного компьютера, поэтому они должны совпадать с культурой / регионом.

1 Ответ

0 голосов
/ 15 апреля 2020

1. Настройка даты с использованием -Format или -UFormat

Вы можете использовать параметр -Format или -UFormat, чтобы принудительно установить определенный формат вашей даты:

Get-Date -Format "dddd, d MMMM yyyy hh:mm:ss tt"
Get-Date -UFormat "%A, %e %B %Y %r"

Оба будут отображать желаемый формат даты, если вы используете en-US информацию о культуре:

Wednesday, 15 April 2020 08:09:24 AM

Подробнее о:

2. Настройка даты с другой информацией о культуре

Если вы хотите отобразить дату на другом языке, вы также можете применить определенную информацию о культуре. Помните, что параметр -Format - это просто оболочка для метода ToString(). Таким образом, вы также можете использовать следующую строку для отображения желаемой даты:

(Get-Date).ToString('dddd, d MMMM yyyy hh:mm:ss tt')

К счастью, существуют различные перегрузки этого метода ToString(). Существует также один, который принимает информацию о культуре в качестве второго параметра. Таким образом, в заключение вы можете передать различную информацию о культуре в ваш метод ToString(), чтобы получить результаты на разных языках:

$culture = [System.Globalization.CultureInfo]::CreateSpecificCulture('en-US')
(Get-Date).ToString('dddd, d MMMM yyyy hh:mm:ss tt', $culture)

отобразит:

Wednesday, 15 April 2020 08:09:24 AM

и одновременно

$culture = [System.Globalization.CultureInfo]::CreateSpecificCulture('de-DE')
(Get-Date).ToString('dddd, d MMMM yyyy hh:mm:ss tt', $culture)

будет отображаться:

Mittwoch, 15 April 2020 08:09:24

3. Настройка даты с предопределенными спецификациями культуры c шаблонов

В $culture.DateTimeFormat вы также можете найти уже подготовленные шаблоны спецификаций культуры c для форматирования даты и можете использовать их вместо того, чтобы писать их самостоятельно:

$culture = [System.Globalization.CultureInfo]::CreateSpecificCulture('en-US')
(Get-Date).ToString($culture.DateTimeFormat.ShortDatePattern, $culture)

будет отображаться:

4/15/2020

и в то же время

$culture = [System.Globalization.CultureInfo]::CreateSpecificCulture('de-DE')
(Get-Date).ToString($culture.DateTimeFormat.ShortDatePattern, $culture)

будет отображать:

15.04.2020

Кстати: шаблон, аналогичный вашему, указанный в вашем вопросе, будет:

$culture = [System.Globalization.CultureInfo]::CreateSpecificCulture('en-US')
(Get-Date).ToString($culture.DateTimeFormat.FullDateTimePattern, $culture)

Wednesday, April 15, 2020 8:09:24 AM

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...