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


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 для получения элемента даты или времени. Параметр использует аргументы даты, времениили DateTime.

Get-Date -DisplayHint Date

Tuesday, June 25, 2019

Get-Date использует параметр DisplayHint с аргументом date 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 использует параметр формата для указания нескольких описателей формата.

Описатели формата .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 String метки времени. Объект отправляется по конвейеру в ForEach-Object. ScriptBlock содержит переменную $_, представляющую текущий объект конвейера. Строка метки времени разделена двоеточиями, которые заменяются периодами.

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

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

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

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 DateTimestring с помощью текущего параметра языка и региональных параметров. Однако интерпретация выражений 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
Position:Named
Default value:None
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-Date

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

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

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

Тип:DateTime
Aliases:LastWriteTime
Position:0
Default value:None
Обязательно:False
Принять входные данные конвейера:True
Принять подстановочные знаки:False

-Day

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

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

Тип:Int32
Position:Named
Default value:None
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-DisplayHint

Определяет элементы даты и времени.

Допустимые значения приведены следующим образом:

  • дата: отображается только дата
  • время: отображается только время
  • DateTime: отображает дату и время
Тип:DisplayHintType
Допустимые значения:Date, Time, DateTime
Position:Named
Default value:None
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-Format

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

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

Если используется параметр формата, Get-Date получает свойства объекта DateTime, необходимые для отображения даты. В результате некоторые свойства и методы объектов 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.

Тип:String
Position:Named
Default value:None
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-Hour

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

Тип:Int32
Position:Named
Default value:None
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-Millisecond

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

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

Тип:Int32
Position:Named
Default value:None
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-Minute

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

Тип:Int32
Position:Named
Default value:None
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-Month

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

Тип:Int32
Position:Named
Default value:None
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-Second

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

Тип:Int32
Position:Named
Default value:None
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-UFormat

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

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

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

Тип:String
Position:Named
Default value:None
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-UnixTimeSeconds

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

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

Тип:Int64
Aliases:UnixTime
Position:Named
Default value:None
Обязательно:True
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-Year

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

Тип:Int32
Position:Named
Default value:None
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки: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 — это форматы длинной даты и длительного времени для выбранного языкового стандарта.

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

Важный

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

Описатель формата Значение Пример
%A День недели - полное имя Понедельник
%a День недели - сокращенное имя Пн
%B Имя месяца — полное Январь
%b Имя месяца — сокращено Янв
%C Век 20 за 2019 год
%c Дата и время — сокращено Чт 27 08:44:18 2019
%D Дата в формате мм/дд/гг 06/27/19
%d День месяца — 2 цифры 05
%e День месяца — перед пробелом, если только одна цифра <пробел>5
%F Дата в формате YYY-mm-dd, равна %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 AM или PM
%R Время в 24-часовом формате -no секунд 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 Дата в стандартном формате для языкового стандарта 06.27.19 для English-US
%Y Год в формате 4 цифр 2019
%y Год в формате с 2 цифрами 19
%Z Смещение часового пояса из универсальной координаты времени (UTC) -07

Заметка

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

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