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 отправляется по конвейеру в командлет, например Add-Content
, который ожидает ввод строк, PowerShell преобразует объект в объект String.
ToString()
преобразует объект DateTime в string с помощью текущего параметра языка и региональных параметров.
Однако интерпретация выражений PowerShell всегда использует инвариантный параметр языка и региональных параметров. Сведения о том, как инвариантные региональные параметры отличаются, см. в примере 11.
Чтобы отобразить свойства и методы объекта, отправьте объект вниз конвейера в 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 |
%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.
- Это значение является целым числом секунд (без дробной части).
Связанные ссылки
PowerShell