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


Get-Date

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

Синтаксис

Get-Date
   [[-Date] <DateTime>]
   [-Year <Int32>]
   [-Month <Int32>]
   [-Day <Int32>]
   [-Hour <Int32>]
   [-Minute <Int32>]
   [-Second <Int32>]
   [-Millisecond <Int32>]
   [-DisplayHint <DisplayHintType>]
   [-Format <String>]
   [<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 получает объект 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 сохраняет текущую системную дату и время. $TimeToUniversalTime() использует метод для преобразования времени на основе смещения utc компьютера.

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

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

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

Пример 9. Отображение инвариантного языка и региональных параметров

Объект ToString() DateTime преобразует строку с помощью текущего параметра языка и региональных параметров. Однако интерпретация выражений 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

Параметры

-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

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

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

  • Date: отображается только дата;
  • Time: отображается только время;
  • DateTime: отображаются дата и время.
Тип:DisplayHintType
Допустимые значения:Date, Time, DateTime
Position:Named
Default value:None
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки: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.

Тип: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.

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

Чтобы отобразить свойства и методы объекта, отправьте объект вниз по конвейеру 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
%G То же, что и "Y"
%g То же самое, что 'y'
%H Час в 24-часовом формате 17
%h То же самое, что "b"
%I Час в формате 12 часов 05
%j День года (не включает ведущих 0 — исправлено в PowerShell 6+) 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 (преобразовано в местное время) 1150451174.95705
%t Символ горизонтальной вкладки
%T Время в 24-часовом формате 17:45:52
%U То же самое, что "W"
%u День недели - число Воскресенье = 0
%V Неделя года 01-53
%w То же самое, что "u"
%W Неделя года 00-52
%X То же самое, что "T"
%x Дата в стандартном формате для языкового стандарта 06.27.19 для английского языка США
%Y Год в формате 4 цифр 2019
%y Год в формате с 2 цифрами 19
%Z Смещение часового пояса из универсальной координаты времени (UTC) -07

Примечание.

Поведение Get-Date -UFormat %s Windows PowerShell неправильно в двух отношениях:

  • Возвращаемое значение основано на локальном времени вместо времени UTC.
  • Строковое представление значения секунд имеет дробную часть. Выходные данные чувствительны к десятичному знаку с учетом языка и региональных параметров.

Эти действия были исправлены в PowerShell 6 и более поздних версиях.