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, 2019Get-Date использует параметр DisplayHint с аргументом Date, чтобы получить только дату.
Пример 3. Получите дату и время с помощью спецификатора формата .NET.
В этом примере описатель формата .NET используется для настройки формата вывода. Результатом является объект String.
Get-Date -Format "dddd MM/dd/yyyy HH:mm K"
Tuesday 06/25/2019 16:17 -07:00Get-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 -07Get-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
366Get-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:26Get-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.
- Значение представляет собой целое число секунд (без дробной части).