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


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

В этом примере описатель формата создает объект 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 для создания объекта 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

Параметры

-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.

Введите дату и время в формате, стандартном для языкового стандарта системы.

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

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 2 -Day 31отображается 3 марта, а не 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 в качестве разделителя времени, двухзначного часа, двухзначной минуты, двухзначной секунды и 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

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

Pipeline input

Get-Date принимает входные данные конвейера. Например, Get-ChildItem | Get-Date.

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

System.DateTime or System.String

Get-Date возвращает объект DateTime , за исключением случаев, когда используются параметры Format и UFormat . Параметры Format или UFormat возвращают объекты String .

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

Метод (Get-Date).ToString() преобразует объект DateTime в объект String .

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

Примечания

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

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

Спецификатор формата Значение Пример
%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 То же, что и "Y"
%g То же, что и "y"
%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 1150451174
%t Символ горизонтальной табуляции
%T Время в 24-часовом формате 17:45:52
%U То же, что и "W"
%u День недели — число Воскресенье = 0
%V Неделя года 01-53
%w То же, что и "u"
%W Неделя года 00-52
%X То же, что и "T"
%x Дата в стандартном формате для языкового стандарта 27.06.19 для английского —US
%Y Год в формате 4 цифр 2019
%y Год в двухзначном формате 19
%Z Смещение часового пояса от универсальной координаты времени (UTC) -07