Поделиться через


Get-Date

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

Синтаксис

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 системная дата и время. Выходные данные приведены в формате long-date и long-time.

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. Create метки времени

В этом примере описатель формата создает объект 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 (представленное количеством секунд с 0:00:00 01.01.1970) преобразуется в тип 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.

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Date

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

Например, на английском языке (США):

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

Type:DateTime
Aliases:LastWriteTime
Position:0
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-Day

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

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

Type:Int32
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-DisplayHint

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

Допустимые значения:

  • Date: отображается только дата;
  • Time: отображается только время;
  • DateTime: отображаются дата и время.
Type:DisplayHintType
Accepted values:Date, Time, DateTime
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Format

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

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

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

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

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

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

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

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

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Hour

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

Type:Int32
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Millisecond

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

Этот параметр появился в PowerShell 3.0.

Type:Int32
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Minute

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

Type:Int32
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Month

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

Type:Int32
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Second

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

Type:Int32
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-UFormat

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

Описателям UFormat предшествует знак процента (%), например , %m%dи %Y. Раздел Notes содержит таблицу допустимых описателей UFormat.

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

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-UnixTimeSeconds

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

Этот параметр появился в PowerShell 7.1.

Type:Int64
Aliases:UnixTime
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-Year

Указывает выводимый год. Введите значение от 1 до 9999.

Type:Int32
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

Входные данные

DateTime

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

Выходные данные

DateTime

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

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

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

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

String

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

Примечания

Форматами по умолчанию для выходных данных объектов DateTime являются форматы long-date и long-time для выбранного языкового стандарта.

Допустимые описатели UFormat отображаются в следующей таблице:

Важно!

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

Спецификатор формата Значение Пример
%A День недели — полное название Понедельник
%a День недели — сокращенное название Mon
%B Название месяца — полное Январь
%b Название месяца — сокращенное Январь
%C Века 20 за 2019 год
%c Дата и время — сокращенно Чт июня 27 08:44:18 2019
%D Дата в формате мм/дд/гг 06/27/19
%d День месяца — 2 цифры 05
%e День месяца — предваряется пробелом, если только одна цифра <пробел>5
%F Дата в формате ГГГГ-мм-дд, равна %Y-%m-%d (формат даты ISO 8601) 2019-06-27
%G Дата недели ISO год (год, содержащий четверг недели)
%g То же, что и "G" — 2 цифры
%H Час в 24-часовом формате 17
%h То же, что и "b"
%I Час в 12-часовом формате 05
%j День года 1-366
%k То же, что и "H"
%l То же, что и "I" (заглавная буква I) 05
%M Минуты 35
%m Номер месяца. 06
%n Символ новой строки
%p До или после полудня
%R Время в 24-часовом формате -без секунд 17:45
%r Время в 12-часовом формате 09:15:36
%S Секунды 05
%s Секунды истекли с 1 января 1970 г. 00:00:00 (UTC) 1150451174
%t Символ горизонтальной табуляции
%T Время в 24-часовом формате 17:45:52
%U То же, что и "W"
%u Числовой день недели (1–7) (изменено в PowerShell 7.2) Понедельник = 1, Воскресенье = 7
%V Неделя года 01-53
%w Числовой день недели (0–6) Воскресенье = 0, суббота = 6
%W Неделя года 00-52
%X То же, что и "T"
%x Дата в стандартном формате для языкового стандарта 27.06.19 для английского —US
%Y Год в формате 4 цифр 2019
%y Год в двухзначном формате 19
%Z Смещение часового пояса от универсальной координаты времени (UTC) -07

Примечание

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

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