Поиск по сайту:

Get-Date (Microsoft.PowerShell.Utility)


Get-Date

Модуль:
Microsoft.PowerShell.Utility

Получает текущую дату и время.

Синтаксис

Get-Date
   [[-Date] <DateTime>]
   [-Year <Int32>]
   [-Month <Int32>]
   [-Day <Int32>]
   [-Hour <Int32>]
   [-Minute <Int32>]
   [-Second <Int32>]
   [-Millisecond <Int32>]
   [-DisplayHint <DisplayHintType>]
   [-Format <String>]
   [-AsUTC]
   [<CommonParameters>]
Get-Date
   [[-Date] <DateTime>]
   [-Year <Int32>]
   [-Month <Int32>]
   [-Day <Int32>]
   [-Hour <Int32>]
   [-Minute <Int32>]
   [-Second <Int32>]
   [-Millisecond <Int32>]
   [-DisplayHint <DisplayHintType>]
   -UFormat <String>
   [<CommonParameters>]
Get-Date
   -UnixTimeSeconds <Int64>
   [-Year <Int32>]
   [-Month <Int32>]
   [-Day <Int32>]
   [-Hour <Int32>]
   [-Minute <Int32>]
   [-Second <Int32>]
   [-Millisecond <Int32>]
   [-DisplayHint <DisplayHintType>]
   [-Format <String>]
   [-AsUTC]
   [<CommonParameters>]
Get-Date
   -UnixTimeSeconds <Int64>
   [-Year <Int32>]
   [-Month <Int32>]
   [-Day <Int32>]
   [-Hour <Int32>]
   [-Minute <Int32>]
   [-Second <Int32>]
   [-Millisecond <Int32>]
   [-DisplayHint <DisplayHintType>]
   -UFormat <String>
   [<CommonParameters>]

Описание

Командлет Get-Date получает объект DateTime, который представляет текущую или указанную вами дату. Get-Date может форматировать дату и время в нескольких форматах .NET и UNIX. Вы можете использовать Get-Date для создания строки символов даты или времени, а затем отправить эту строку другим командлетам или программам.

Get-Date использует текущие настройки языка и региональных параметров операционной системы, чтобы определить формат вывода. Чтобы просмотреть настройки вашего компьютера, используйте (Get-Culture).DateTimeFormat.

Примеры

Пример 1: Получить текущую дату и время

В этом примере Get-Date отображает текущую системную дату и время. Вывод осуществляется в форматах длинной даты и долгого времени.

Get-Date

Tuesday, June 25, 2019 14:53:32

Пример 2. Получение элементов текущей даты и времени

В этом примере показано, как использовать Get-Date для получения элемента даты или времени. Параметр использует аргументы Date, Time или DateTime.

Get-Date -DisplayHint Date

Tuesday, June 25, 2019

Get-Date использует параметр DisplayHint с аргументом Date, чтобы получить только дату.

Пример 3. Получите дату и время с помощью спецификатора формата .NET.

В этом примере описатель формата .NET используется для настройки формата вывода. Результатом является объект String.

Get-Date -Format "dddd MM/dd/yyyy HH:mm K"

Tuesday 06/25/2019 16:17 -07:00

Get-Date использует параметр Format для указания нескольких спецификаторов формата.

Спецификаторы формата .NET, используемые в этом примере, определяются следующим образом:

dddd

День недели - полное название

MM

Номер месяца

dd

День месяца - 2 цифры

yyyy

Год в 4-значном формате

HH:mm

Время в 24-часовом формате - без секунд.

K

Смещение часового пояса от всемирной временной координаты (UTC)

Дополнительные сведения о спецификаторах формата .NET см. в разделе Строки настраиваемого формата даты и времени.

Пример 4. Получите дату и время с помощью спецификатора UFormat.

В этом примере несколько спецификаторов формата UFormat используются для настройки формата вывода. Результатом является объект String.

Get-Date -UFormat "%A %m/%d/%Y %R %Z"

Tuesday 06/25/2019 16:19 -07

Get-Date использует параметр UFormat для указания нескольких спецификаторов формата.

Спецификаторы формата UFormat, используемые в этом примере, определяются следующим образом:

%A

День недели - полное название

%m

Номер месяца

%d

День месяца - 2 цифры

%Y

Год в 4-значном формате

%R

Время в 24-часовом формате - без секунд.

%Z

Смещение часового пояса от всемирной временной координаты (UTC)

Список допустимых спецификаторов формата UFormat см. в разделе «Примечания».

Пример 5: Получить день года для даты

В этом примере свойство используется для получения числового дня года.

В григорианском календаре 365 дней, за исключением високосных лет, в которых 366 дней. Например, 31 декабря 2020 года — это 366-й день.

(Get-Date -Year 2020 -Month 12 -Day 31).DayOfYear

366

Get-Date использует три параметра для указания даты: Год, Месяц и День. Команда заключена в круглые скобки, чтобы результат оценивался свойством DayofYear.

Пример 6. Проверьте, настроена ли дата на летнее время.

В этом примере используется логический метод для проверки того, настроена ли дата на летнее время.

$DST = Get-Date
$DST.IsDaylightSavingTime()

True

Переменная $DST хранит результат Get-Date. $DST использует метод IsDaylightSavingTime, чтобы проверить, настроена ли дата на летнее время.

Пример 7. Преобразование текущего времени во время UTC.

В этом примере текущее время преобразуется во время UTC. Смещение UTC для языкового стандарта системы используется для преобразования времени. В таблице в разделе «Примечания» перечислены допустимые спецификаторы формата UFormat.

Get-Date -UFormat "%A %B/%d/%Y %T %Z"
$Time = Get-Date
$Time.ToUniversalTime()

Wednesday June/26/2019 10:45:26 -07

Wednesday, June 26, 2019 17:45:26

Get-Date использует параметр UFormat со спецификаторами формата для отображения текущей системной даты и времени. Спецификатор формата %Z представляет смещение UTC -07.

Переменная $Time хранит текущую системную дату и время. $Time использует метод ToUniversalTime() для преобразования времени на основе смещения UTC компьютера.

Пример 8. Создайте временную метку

В этом примере описатель формата создает объект метки времени String для имени каталога. Временная метка включает дату, время и смещение UTC.

$timestamp = Get-Date -Format o | ForEach-Object { $_ -replace ":", "." }
New-Item -Path C:\Test\$timestamp -Type Directory

Directory: C:\Test

Mode                LastWriteTime         Length Name
----                -------------         ------ ----
d-----         6/27/2019    07:59                2019-06-27T07.59.24.4603750-07.00

Переменная $timestamp хранит результаты команды Get-Date. Get-Date использует параметр Format со спецификатором формата в нижнем регистре o для создания объекта String с меткой времени. Объект отправляется по конвейеру в ForEach-Object. ScriptBlock содержит переменную $_, которая представляет текущий объект конвейера. Строка временной метки разделяется двоеточиями, которые заменяются точками.

New-Item использует параметр Path для указания местоположения нового каталога. Путь включает переменную $timestamp в качестве имени каталога. Параметр Type указывает, что каталог создан.

Пример 9: Преобразование временной метки Unix

В этом примере время Unix (представленное количеством секунд с 01.01.1970 0:00:00) преобразуется в DateTime.

Get-Date -UnixTimeSeconds 1577836800

Wednesday, January 01, 2020 12:00:00 AM

Пример 10. Возврат значения даты, интерпретируемого как UTC.

В этом примере показано, как интерпретировать значение даты как его эквивалент в формате UTC. Например, на этом устройстве установлено Стандартное тихоокеанское время. По умолчанию Get-Date возвращает значения для этого часового пояса. Используйте параметр AsUTC, чтобы преобразовать значение в эквивалентное время в формате UTC.

PS> Get-TimeZone

Id                         : Pacific Standard Time
DisplayName                : (UTC-08:00) Pacific Time (US & Canada)
StandardName               : Pacific Standard Time
DaylightName               : Pacific Daylight Time
BaseUtcOffset              : -08:00:00
SupportsDaylightSavingTime : True

PS> (Get-Date -Date "2020-01-01T00:00:00").Kind
Unspecified

PS> Get-Date -Date "2020-01-01T00:00:00"

Wednesday, January 1, 2020 12:00:00 AM

PS> (Get-Date -Date "2020-01-01T00:00:00" -AsUTC).Kind
Utc

PS> Get-Date -Date "2020-01-01T00:00:00" -AsUTC

Wednesday, January 1, 2020 8:00:00 AM

Пример 11: Показать инвариантную культуру

ToString() преобразует объект DateTime в String, используя текущие настройки региональных параметров. Однако интерпретация выражений PowerShell всегда использует инвариантный параметр языка и региональных параметров.

Например, в системе, где действует язык и региональные параметры en-US, метод ToString() форматирует дату с использованием языка и региональных параметров en-US. настройки.

# Get date using current culture en-US
(Get-Date 2024-03-19).ToString()

3/19/2024 12:00:00 AM

# Get date using invariant culture
"$(Get-Date 2024-03-19)"

03/19/2024 00:00:00

Параметры

-AsUTC

Преобразует значение даты в эквивалентное время в формате UTC.

Этот параметр был введен в PowerShell 7.1.

Тип :

SwitchParameter

Позиция:

Именованный

Значение по умолчанию:

None

Необходимый:

False

Примите ввод конвейера:

False

Принимайте подстановочные знаки:

False

-Date

Указывает дату и время. Время не является обязательным, и если оно не указано, возвращается 00:00:00. Введите дату и время в формате, стандартном для выбранного в данный момент языкового стандарта. Вы можете изменить текущую локаль с помощью командлета Set-Culture.

Например, на американском английском:

Get-Date -Date "25.06.2019 12:30:22" возвращает Вторник, 25 июня 2019 г., 12:30:22

Тип :

DateTime

Псевдонимы:

LastWriteTime

Позиция:

0

Значение по умолчанию:

None

Необходимый:

False

Примите ввод конвейера:

True

Принимайте подстановочные знаки:

False

-Day

Указывает отображаемый день месяца. Введите значение от 1 до 31.

Если указанное значение превышает количество дней в месяце, PowerShell добавляет количество дней к месяцу. Например, Get-Date -Month 4 -Day 31 отображает 1 мая, а не 31 апреля.

Тип :

Int32

Позиция:

Именованный

Значение по умолчанию:

None

Необходимый:

False

Примите ввод конвейера:

False

Принимайте подстановочные знаки:

False

-DisplayHint

Определяет, какие элементы даты и времени отображаются.

Принятые значения следующие:

  • Дата: отображается только дата.
  • Время: отображается только время.
  • DateTime: отображает дату и время.
Тип :

Дисплайхинттипе

Принятые значения:

Дата, Время, ДатаВремя

Позиция:

Именованный

Значение по умолчанию:

None

Необходимый:

False

Примите ввод конвейера:

False

Принимайте подстановочные знаки:

False

-Format

Отображает дату и время в формате Microsoft .NET Framework, указанном спецификатором формата. Параметр Format выводит объект String.

Список доступных описателей формата .NET см. в разделе Строки настраиваемого формата даты и времени.

При использовании параметра Format Get-Date получает только свойства объекта DateTime, необходимые для отображения даты. В результате некоторые свойства и методы объектов DateTime могут быть недоступны.

Начиная с PowerShell 5.0, вы можете использовать следующие дополнительные форматы в качестве значений параметра Format.

  • ДатаФайла. Представление текущей даты по местному времени в виде файла или пути. Формат: ггггММдд (с учетом регистра, год — 4 цифры, месяц — 2 цифры, день — 2 цифры). Например: 20190627.

  • FileDateUniversal. Представление текущей даты в формате универсального времени (UTC) в формате файла или пути. Формат: ггггММддZ (с учетом регистра, с использованием 4-значного года, 2-значного месяца, 2-значного дня и буквы Z в качестве индикатора UTC). Например: 20190627Z.

  • FileDateTime. Файл или удобное представление текущей даты и времени по местному времени в 24-часовом формате. Формат: ггггММддTHHmmssffff (с учетом регистра, с использованием 4-значного года, 2-значного месяца, 2-значного дня, буквы T в качестве разделителя времени, 2-значного числа). цифры часа, 2-значные минуты, 2-значные секунды и 4-значные миллисекунды). Например: 20190627T0840107271.

  • FileDateTimeUniversal. Файл или удобное для пути представление текущей даты и времени во всемирном времени (UTC) в 24-часовом формате. Формат: ггггММддTHHmmssffffZ (с учетом регистра, с использованием 4-значного года, 2-значного месяца, 2-значного дня, буквы T в качестве разделителя времени, 2- цифры часов, 2-значные минуты, 2-значные секунды, 4-значные миллисекунды и буква Z в качестве индикатора UTC). Например: 20190627T1540500718Z.

Тип :

String

Позиция:

Именованный

Значение по умолчанию:

None

Необходимый:

False

Примите ввод конвейера:

False

Принимайте подстановочные знаки:

False

-Hour

Указывает отображаемый час. Введите значение от 0 до 23.

Тип :

Int32

Позиция:

Именованный

Значение по умолчанию:

None

Необходимый:

False

Примите ввод конвейера:

False

Принимайте подстановочные знаки:

False

-Millisecond

Указывает миллисекунды в дате. Введите значение от 0 до 999.

Этот параметр был введен в PowerShell 3.0.

Тип :

Int32

Позиция:

Именованный

Значение по умолчанию:

None

Необходимый:

False

Примите ввод конвейера:

False

Принимайте подстановочные знаки:

False

-Minute

Указывает отображаемую минуту. Введите значение от 0 до 59.

Тип :

Int32

Позиция:

Именованный

Значение по умолчанию:

None

Необходимый:

False

Примите ввод конвейера:

False

Принимайте подстановочные знаки:

False

-Month

Указывает отображаемый месяц. Введите значение от 1 до 12.

Тип :

Int32

Позиция:

Именованный

Значение по умолчанию:

None

Необходимый:

False

Примите ввод конвейера:

False

Принимайте подстановочные знаки:

False

-Second

Указывает секунду, которая отображается. Введите значение от 0 до 59.

Тип :

Int32

Позиция:

Именованный

Значение по умолчанию:

None

Необходимый:

False

Примите ввод конвейера:

False

Принимайте подстановочные знаки:

False

-UFormat

Отображает дату и время в формате UNIX. Параметр UFormat выводит строковый объект.

Спецификаторам UFormat предшествует знак процента (%), например, %m, %d и %Y. Раздел «Примечания» содержит таблицу допустимых спецификаторов UFormat.

При использовании параметра UFormat Get-Date получает только свойства объекта DateTime, необходимые для отображения даты. В результате некоторые свойства и методы объектов DateTime могут быть недоступны.

Тип :

String

Позиция:

Именованный

Значение по умолчанию:

None

Необходимый:

False

Примите ввод конвейера:

False

Принимайте подстановочные знаки:

False

-UnixTimeSeconds

Дата и время представлены в секундах с 1 января 1970 г., 0:00:00.

Этот параметр был введен в PowerShell 7.1.

Тип :

Int64

Псевдонимы:

UnixTime

Позиция:

Именованный

Значение по умолчанию:

None

Необходимый:

True

Примите ввод конвейера:

False

Принимайте подстановочные знаки:

False

-Year

Указывает год, который отображается. Введите значение от 1 до 9999.

Тип :

Int32

Позиция:

Именованный

Значение по умолчанию:

None

Необходимый:

False

Примите ввод конвейера:

False

Принимайте подстановочные знаки:

False

Входы

ДатаВремя

В этот командлет можно передать объект DateTime.

Выходы

ДатаВремя

По умолчанию этот командлет возвращает объект DateTime.

Когда объект DateTime отправляется по конвейеру в командлет, такой как Add-Content, который ожидает ввода строки, PowerShell преобразует объект в String. объект.

ToString() преобразует объект DateTime в String, используя текущие настройки региональных параметров. Однако интерпретация выражений PowerShell всегда использует инвариантный параметр языка и региональных параметров. Чтобы увидеть, чем отличается инвариантная культура, см. пример 11.

Чтобы отобразить свойства и методы объекта, отправьте объект по конвейеру в Get-Member. Например, Get-Date | Get-Member.

Строка

При использовании параметров Format или UFormat этот командлет возвращает объекты String.

Примечания

Форматы по умолчанию для вывода объектов DateTime — это форматы длинной даты и долгого времени для выбранного в данный момент языкового стандарта.

Допустимые спецификаторы UFormat показаны в следующей таблице:

Это важно

Спецификаторы UFormat изменены или добавлены в новых версиях PowerShell. Например, %F был добавлен в PowerShell 6.2, поэтому он недоступен в Windows PowerShell 5.1 и более ранних версиях. Помните об этом при использовании спецификаторов UFormat в сценариях, предназначенных для запуска в нескольких версиях PowerShell.

Format specifier Meaning Example
%A Day of the week - full name Monday
%a Day of the week - abbreviated name Mon
%B Month name - full January
%b Month name - abbreviated Jan
%C Century 20 for 2019
%c Date and time - abbreviated Thu Jun 27 08:44:18 2019
%D Date in mm/dd/yy format 06/27/19
%d Day of the month - 2 digits 05
%e Day of the month - preceded by a space if only a single digit <space>5
%F Date in YYYY-mm-dd format, equal to %Y-%m-%d (the ISO 8601 date format) 2019-06-27
%G ISO week date year (year containing Thursday of the week)
%g Same as 'G' - 2 digits
%H Hour in 24-hour format 17
%h Same as 'b'
%I Hour in 12-hour format 05
%j Day of the year 1-366
%k Same as 'H'
%l Same as 'I' (Upper-case I) 05
%M Minutes 35
%m Month number 06
%n newline character
%p AM or PM
%R Time in 24-hour format -no seconds 17:45
%r Time in 12-hour format 09:15:36 AM
%S Seconds 05
%s Seconds elapsed since January 1, 1970 00:00:00 (UTC) 1150451174
%t Horizontal tab character
%T Time in 24-hour format 17:45:52
%U Same as 'W'
%u Numeric day of the week (1-7) (Changed in PowerShell 7.2) Monday = 1, Sunday = 7
%V Week of the year 01-53
%w Numeric day of the week (0-6) Sunday = 0, Saturday = 6
%W Week of the year 00-52
%X Same as 'T'
%x Date in standard format for locale 06/27/19 for English-US
%Y Year in 4-digit format 2019
%y Year in 2-digit format 19
%Z Time zone offset from Universal Time Coordinate (UTC) -07

Примечание

Поведение -UFormat %s было изменено, чтобы исправить проблемы с поведением в Windows PowerShell.

  • Возвращаемое значение основано на времени UTC.
  • Значение представляет собой целое число секунд (без дробной части).