Compartilhar via


Get-Date

Obtém a data e hora atuais.

Sintaxe

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

Description

O Get-Date cmdlet obtém um objeto DateTime que representa a data atual ou uma data que você especificar. Get-Date pode formatar a data e a hora em vários formatos .NET e UNIX. Você pode usar Get-Date para gerar uma cadeia de caracteres de data ou hora e, em seguida, enviar a cadeia de caracteres para outros cmdlets ou programas.

Get-Date usa as configurações de cultura atuais do sistema operacional para determinar como a saída é formatada. Para exibir as configurações do seu computador, use (Get-Culture).DateTimeFormat.

Exemplos

Exemplo 1: Obter a data e a hora atuais

Neste exemplo, Get-Date exibe a data e a hora atuais do sistema. A saída está nos formatos de data longa e de longa data.

Get-Date

Tuesday, June 25, 2019 14:53:32

Exemplo 2: Obter elementos da data e hora atuais

Este exemplo mostra como usar Get-Date para obter o elemento de data ou hora. O parâmetro usa os argumentos Date, Time ou DateTime.

Get-Date -DisplayHint Date

Tuesday, June 25, 2019

Get-Date usa o parâmetro DisplayHint com o argumento Date para obter apenas a data.

Exemplo 3: Obter a data e a hora com um especificador de formato .NET

Neste exemplo, um especificador de formato .NET é usado para personalizar o formato da saída. A saída é um objeto String .

Get-Date -Format "dddd MM/dd/yyyy HH:mm K"

Tuesday 06/25/2019 16:17 -07:00

Get-Date usa o parâmetro Format para especificar vários especificadores de formato.

Os especificadores de formato .NET usados neste exemplo são definidos da seguinte maneira:

Especificador Definição
dddd Dia da semana - nome completo
MM Número do mês
dd Dia do mês - 2 dígitos
yyyy Ano no formato de 4 dígitos
HH:mm Hora no formato de 24 horas - sem segundos
K Deslocamento de fuso horário da Coordenada de Tempo Universal (UTC)

Para obter mais informações sobre especificadores de formato .NET, consulte Cadeias de caracteres de formato de data e hora personalizadas.

Exemplo 4: Obter a data e a hora com um especificador UFormat

Neste exemplo, vários especificadores de formato UFormat são usados para personalizar o formato da saída. A saída é um objeto String .

Get-Date -UFormat "%A %m/%d/%Y %R %Z"

Tuesday 06/25/2019 16:19 -07

Get-Date usa o parâmetro UFormat para especificar vários especificadores de formato.

Os especificadores de formato UFormat usados neste exemplo são definidos da seguinte maneira:

Especificador Definição
%A Dia da semana - nome completo
%m Número do mês
%d Dia do mês - 2 dígitos
%Y Ano no formato de 4 dígitos
%R Hora no formato de 24 horas - sem segundos
%Z Deslocamento de fuso horário da Coordenada de Tempo Universal (UTC)

Para obter uma lista de especificadores de formato UFormat válidos, consulte a seção Notas.

Exemplo 5: Obter o dia do ano de uma data

Neste exemplo, uma propriedade é usada para obter o dia numérico do ano.

O calendário gregoriano tem 365 dias, exceto para anos bissextos que têm 366 dias. Por exemplo, 31 de dezembro de 2020 é o dia 366.

(Get-Date -Year 2020 -Month 12 -Day 31).DayOfYear

366

Get-Date usa três parâmetros para especificar a data: Ano, Mês e Dia. O comando é encapsulado entre parênteses para que o resultado seja avaliado pela propriedade DayofYear .

Exemplo 6: Verificar se uma data é ajustada para o horário de verão

Este exemplo usa um método booleano para verificar se uma data é ajustada pelo horário de verão.

$DST = Get-Date
$DST.IsDaylightSavingTime()

True

Uma variável, $DST armazena o resultado de Get-Date. $DST usa o método IsDaylightSavingTime para testar se a data é ajustada para o horário de verão.

Exemplo 7: Converter a hora atual em UTC

Neste exemplo, a hora atual é convertida em hora UTC. O deslocamento UTC para a localidade do sistema é usado para converter a hora. Uma tabela na seção Notas lista os especificadores de formato UFormat válidos.

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 usa o parâmetro UFormat com especificadores de formato para exibir a data e a hora atuais do sistema. O especificador de formato %Z representa o deslocamento UTC de -07.

A $Time variável armazena a data e a hora atuais do sistema. $Time usa o ToUniversalTime() método para converter a hora com base no deslocamento UTC do computador.

Exemplo 8: Criar um carimbo de data/hora

Neste exemplo, um especificador de formato cria um objeto String de carimbo de data/hora para um nome de diretório. O carimbo de data/hora inclui a data, a hora e o deslocamento 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

A $timestamp variável armazena os resultados de um Get-Date comando. Get-Dateusa o parâmetro Format com o especificador de formato de minúsculas o para criar um objeto String de carimbo de data/hora. O objeto é enviado pelo pipeline para ForEach-Object. Um ScriptBlock contém a $_ variável que representa o objeto de pipeline atual. A cadeia de caracteres de carimbo de data/hora é delimitada por dois-pontos que são substituídos por pontos.

New-Item usa o parâmetro Path para especificar o local de um novo diretório. O caminho inclui a $timestamp variável como o nome do diretório. O parâmetro Type especifica que um diretório é criado.

Exemplo 9: Converter um carimbo de data/hora do Unix

Esse exemplo converte o horário do Unix (representado pelo número de segundos desde 1970-01-01 0:00:00) para DateTime.

Get-Date -UnixTimeSeconds 1577836800

Wednesday, January 01, 2020 12:00:00 AM

Exemplo 10: retornar um valor de data interpretado como UTC

Este exemplo mostra como interpretar um valor de data como seu equivalente UTC. Por exemplo, esta máquina é definida como Horário Padrão do Pacífico. Por padrão, Get-Date retorna valores para esse fuso horário. Use o parâmetro AsUTC para converter o valor para o tempo equivalente 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

Exemplo 11: Mostrar cultura invariável

O ToString() converte um objeto DateTime em String usando a configuração de cultura atual. No entanto, a interpretação de expressão do PowerShell sempre usa a configuração de cultura invariável.

Por exemplo, em um sistema com a en-US cultura em vigor, o método formata ToString() a data usando as configurações de en-US cultura.

# 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

Parâmetros

-AsUTC

Converte o valor da data para a hora equivalente em UTC.

Esse parâmetro foi introduzido no PowerShell 7.1.

Tipo:SwitchParameter
Cargo:Named
Valor padrão:None
Obrigatório:False
Aceitar a entrada de pipeline:False
Aceitar caracteres curinga:False

-Date

Especifica uma data e hora. O tempo é opcional e, se não for especificado, retorna 00:00:00. Insira a data e a hora em um formato padrão para a localidade selecionada no momento. Você pode alterar a localidade atual usando o Set-Culture cmdlet.

Por exemplo, em inglês dos EUA:

Get-Date -Date "6/25/2019 12:30:22" retorna terça-feira, 25 de junho de 2019 12:30:22

Tipo:DateTime
Aliases:LastWriteTime
Cargo:0
Valor padrão:None
Obrigatório:False
Aceitar a entrada de pipeline:True
Aceitar caracteres curinga:False

-Day

Especifica o dia do mês que é exibido. Insira um valor de 1 a 31.

Se o valor especificado for maior que o número de dias em um mês, o PowerShell adicionará o número de dias ao mês. Por exemplo, Get-Date -Month 4 -Day 31 exibe de maio, não 31 de abril.

Tipo:Int32
Cargo:Named
Valor padrão:None
Obrigatório:False
Aceitar a entrada de pipeline:False
Aceitar caracteres curinga:False

-DisplayHint

Determina quais elementos de data e hora são exibidos.

Os valores aceitos são os seguintes:

  • Data: exibe apenas a data
  • Hora: exibe apenas a hora
  • Data/hora: exibe a data e a hora
Tipo:DisplayHintType
Valores aceitos:Date, Time, DateTime
Cargo:Named
Valor padrão:None
Obrigatório:False
Aceitar a entrada de pipeline:False
Aceitar caracteres curinga:False

-Format

Exibe a data e hora no formato do Microsoft .NET Framework indicado pelo especificador de formato. O parâmetro Format gera um objeto String .

Para obter uma lista de especificadores de formato .NET disponíveis, consulte Cadeias de caracteres de formato de data e hora personalizadas.

Quando o parâmetro Format é usado, Get-Date obtém apenas as propriedades do objeto DateTime necessárias para exibir a data. Como resultado, algumas das propriedades e métodos de objetos DateTime podem não estar disponíveis.

A partir do PowerShell 5.0, você pode usar os seguintes formatos adicionais como valores para o parâmetro Format .

  • DataDoArquivo. Uma representação amigável de arquivo ou caminho da data atual na hora local. O formato é yyyyMMdd (diferencia maiúsculas de minúsculas, usando um ano de 4 dígitos, mês de 2 dígitos e dia de 2 dígitos). Por exemplo: 20190627.

  • FileDateUniversal. Uma representação amigável de arquivo ou caminho da data atual em tempo universal (UTC). O formato é yyyyMMddZ (diferencia maiúsculas de minúsculas, usando um ano de 4 dígitos, mês de 2 dígitos, dia de 2 dígitos e a letra Z como indicador UTC). Por exemplo: 20190627Z.

  • FileDateTime. Uma representação amigável de arquivo ou caminho da data e hora atuais na hora local, no formato de 24 horas. O formato é yyyyMMddTHHmmssffff (diferencia maiúsculas de minúsculas, usando um ano de 4 dígitos, mês de 2 dígitos, dia de 2 dígitos, a letra T como separador de tempo, hora de 2 dígitos, minuto de 2 dígitos, segundo de 2 dígitos e milissegundo de 4 dígitos). Por exemplo: 20190627T0840107271.

  • FileDateTimeUniversal. Uma representação amigável de arquivo ou caminho da data e hora atuais no tempo universal (UTC), no formato de 24 horas. O formato é yyyyMMddTHHmmssffffZ (diferencia maiúsculas de minúsculas, usando um ano de 4 dígitos, mês de 2 dígitos, dia de 2 dígitos, a letra T como separador de tempo, hora de 2 dígitos, minuto de 2 dígitos, segundo de 2 dígitos, milissegundo de 4 dígitos e a letra Z como indicador UTC). Por exemplo: 20190627T1540500718Z.

Tipo:String
Cargo:Named
Valor padrão:None
Obrigatório:False
Aceitar a entrada de pipeline:False
Aceitar caracteres curinga:False

-Hour

Especifica a hora que é exibida. Insira um valor de 0 a 23.

Tipo:Int32
Cargo:Named
Valor padrão:None
Obrigatório:False
Aceitar a entrada de pipeline:False
Aceitar caracteres curinga:False

-Millisecond

Especifica os milissegundos na data. Insira um valor de 0 a 999.

Esse parâmetro foi introduzido no PowerShell 3.0.

Tipo:Int32
Cargo:Named
Valor padrão:None
Obrigatório:False
Aceitar a entrada de pipeline:False
Aceitar caracteres curinga:False

-Minute

Especifica o minuto que é exibido. Insira um valor de 0 a 59.

Tipo:Int32
Cargo:Named
Valor padrão:None
Obrigatório:False
Aceitar a entrada de pipeline:False
Aceitar caracteres curinga:False

-Month

Especifica o mês que é exibido. Insira um valor de 1 a 12.

Tipo:Int32
Cargo:Named
Valor padrão:None
Obrigatório:False
Aceitar a entrada de pipeline:False
Aceitar caracteres curinga:False

-Second

Especifica o segundo que é exibido. Insira um valor de 0 a 59.

Tipo:Int32
Cargo:Named
Valor padrão:None
Obrigatório:False
Aceitar a entrada de pipeline:False
Aceitar caracteres curinga:False

-UFormat

Exibe a data e hora no formato UNIX. O parâmetro UFormat gera um objeto de cadeia de caracteres.

Os especificadores UFormat são precedidos por um sinal de porcentagem (%), por exemplo, %m, , %de %Y. A seção Notas contém uma tabela de especificadores UFormat válidos.

Quando o parâmetro UFormat é usado, Get-Date obtém apenas as propriedades do objeto DateTime necessárias para exibir a data. Como resultado, algumas das propriedades e métodos de objetos DateTime podem não estar disponíveis.

Tipo:String
Cargo:Named
Valor padrão:None
Obrigatório:False
Aceitar a entrada de pipeline:False
Aceitar caracteres curinga:False

-UnixTimeSeconds

Data e hora representadas em segundos desde 1º de janeiro de 1970, 0:00:00.

Esse parâmetro foi introduzido no PowerShell 7.1.

Tipo:Int64
Aliases:UnixTime
Cargo:Named
Valor padrão:None
Obrigatório:True
Aceitar a entrada de pipeline:False
Aceitar caracteres curinga:False

-Year

Especifica o ano que é exibido. Insira um valor de 1 a 9999.

Tipo:Int32
Cargo:Named
Valor padrão:None
Obrigatório:False
Aceitar a entrada de pipeline:False
Aceitar caracteres curinga:False

Entradas

DateTime

Você pode canalizar um objeto DateTime para esse cmdlet.

Saídas

DateTime

Por padrão, esse cmdlet retorna um objeto DateTime .

Quando um objeto DateTime é enviado pelo pipeline para um cmdlet como Add-Content o que espera entrada de cadeia de caracteres, o PowerShell converte o objeto em um objeto String .

O ToString() converte um objeto DateTime em uma String usando a configuração de cultura atual. No entanto, a interpretação de expressão do PowerShell sempre usa a configuração de cultura invariável. Para ver como a cultura invariante é diferente, consulte o Exemplo 11.

Para exibir as propriedades e os métodos de um objeto, envie o objeto pelo pipeline para Get-Member. Por exemplo, Get-Date | Get-Member.

String

Quando você usa os parâmetros Format ou UFormat , esse cmdlet retorna objetos String .

Observações

Os formatos padrão para a saída de objetos DateTime são formatos de data longa e de tempo longo para a localidade selecionada no momento.

Os especificadores UFormat válidos são exibidos na tabela a seguir:

Importante

Os especificadores do UFormat são alterados ou adicionados em versões mais recentes do PowerShell. Por exemplo, %F foi adicionado no PowerShell 6.2, portanto, não está disponível no Windows PowerShell 5.1 ou anterior. Tenha isso em mente ao usar especificadores UFormat em scripts projetados para serem executados em várias versões do PowerShell.

Especificador de formato Significado Exemplo
%A Dia da semana - nome completo Segunda-feira
%a Dia da semana - nome abreviado Seg
%B Nome do mês - completo Janeiro
%b Nome do mês - abreviado Jan
%C Século 20 para 2019
%c Data e hora - abreviado Qui Jun 27 08:44:18 2019
%D Data no formato dd/mm/aa 06/27/19
%d Dia do mês - 2 dígitos 05
%e Dia do mês - precedido por um espaço, se apenas um único dígito <Espaço>5
%F Data no formato AAAA-mm-dd, igual a %Y-%m-%d (o formato de data ISO 8601) 27-06-2019
%G ISO semana data ano (ano contendo quinta-feira da semana)
%g Igual a 'G' - 2 dígitos
%H Hora em formato de 24 horas 17
%h O mesmo que 'b'
%I Hora em formato de 12 horas 05
%j Dia do ano 1-366
%k O mesmo que 'H'
%l O mesmo que 'I' (I maiúsculo) 05
%M Minutos 35
%m Número do mês 06
%n caractere de nova linha
%p AM ou PM
%R Hora no formato de 24 horas - sem segundos 17:45
%r Hora no formato de 12 horas 09:15:36
%S Segundos 05
%s Segundos decorridos desde 1º de janeiro de 1970 00:00:00 (UTC) 1150451174
%t Caractere de tabulação horizontal
%T Hora em formato de 24 horas 17:45:52
%U O mesmo que 'W'
%u Dia numérico da semana (1-7) (alterado no PowerShell 7.2) Segunda-feira = 1, Domingo = 7
%V Semana do ano 01-53
%w Dia numérico da semana (0-6) Domingo = 0, Sábado = 6
%W Semana do ano 00-52
%X O mesmo que 'T'
%x Data no formato padrão para localidade 27/06/19 para inglês-EUA
%Y Ano no formato de 4 dígitos 2019
%y Ano no formato de 2 dígitos 19
%Z Deslocamento de fuso horário da Coordenada de Tempo Universal (UTC) -07

Observação

O comportamento de -UFormat %s foi alterado para corrigir problemas com o comportamento no Windows PowerShell.

  • O valor retornado é baseado na hora UTC.
  • O valor é um número inteiro de segundos (sem parte fracionária).