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
сохраняет текущую системную дату и время. $Time
ToUniversalTime()
использует метод для преобразования времени на основе смещения 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 отправляется по конвейеру в командлет, напримерAdd-Content
, ожидающий ввода строк, PowerShell преобразует объект в объект String.
Объект ToString()
DateTime преобразуется в строку с помощью текущего параметра языка и региональных параметров.
Однако интерпретация выражений PowerShell всегда использует инвариантный параметр языка и региональных параметров. Сведения о том, как инвариантные региональные параметры отличаются, см . в примере 9.
Чтобы отобразить свойства и методы объекта, отправьте объект вниз по конвейеру Get-Member
.
Например, Get-Date | Get-Member
.
При использовании параметров 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 и более поздних версиях.
Связанные ссылки
PowerShell