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 метки времени
В этом примере описатель формата создает объект 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
Пример 11. Отображение инвариантного языка и региональных параметров
Преобразует ToString()
объект DateTime в string с помощью текущего параметра языка и региональных параметров.
Однако интерпретация выражений 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.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Date
Указывает дату и время. Время является необязательным и если не указано, возвращает 00:00:00. Введите дату и время в формате, стандартном для выбранного языкового стандарта. Текущий языковой стандарт можно изменить с помощью командлета Set-Culture
.
Например, на английском языке (США):
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 4 -Day 31
отображается 1 мая, а не 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
в качестве разделителя времени, 2-значный час, 2-значную минуту, 2-значную секунду и 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 |
Входные данные
Объект DateTime можно передать в этот командлет.
Выходные данные
По умолчанию этот командлет возвращает объект DateTime .
Когда объект DateTime отправляется по конвейеру в командлет, который Add-Content
ожидает ввод строки, PowerShell преобразует объект в объект String .
Преобразует ToString()
объект DateTime в string с помощью текущего параметра языка и региональных параметров.
Однако интерпретация выражений PowerShell всегда использует инвариантный параметр языка и региональных параметров. Чтобы узнать, чем отличается инвариантный язык и региональные параметры, см. пример 11.
Чтобы отобразить свойства и методы объекта, отправьте объект вниз по конвейеру в Get-Member
.
Например, Get-Date | Get-Member
.
При использовании параметров Format или UFormat этот командлет возвращает объекты String .
Примечания
Форматами по умолчанию для выходных данных объектов DateTime являются форматы long-date и long-time для выбранного языкового стандарта.
Допустимые описатели UFormat отображаются в следующей таблице:
Важно!
Описатели UFormat изменяются или добавляются в более новых версиях PowerShell. Например, %F
добавлен в PowerShell 6.2, поэтому он недоступен в Windows PowerShell 5.1 или более ранних версий. Помните об этом при использовании описателей UFormat в скриптах, предназначенных для выполнения в нескольких версиях PowerShell.
Спецификатор формата | Значение | Пример |
---|---|---|
%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 |
Дата недели 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 |
До или после полудня | |
%R |
Время в 24-часовом формате -без секунд | 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 |
Дата в стандартном формате для языкового стандарта | 27.06.19 для английского —US |
%Y |
Год в формате 4 цифр | 2019 |
%y |
Год в двухзначном формате | 19 |
%Z |
Смещение часового пояса от универсальной координаты времени (UTC) | -07 |
Примечание
Поведение было изменено -UFormat %s
для устранения проблем с поведением в Windows PowerShell.
- Возвращаемое значение основано на времени в формате UTC.
- Значение представляет собой целое значение в секундах (без дробной части).