PowerShell can do a lot of things and, like any good programming language, it can do just about anything you want with dates. Usando o comando PowerShell Get-Date e outras técnicas, você pode encontrar a data de hoje, a data de amanhã, datas de formato, e muito mais.

neste artigo, você vai aprender tudo sobre datas e PowerShell!,

Índice

pré-Requisitos

A seguir, juntamente com os exemplos deste artigo, por favor, garantir que você tenha os seguintes pré-requisitos cumpridos antes do tempo:

  • Windows PowerShell v5 ou acima – Mesmo se você estiver usando uma versão anterior, todos os exemplos ainda irá provavelmente funcionar bem.

encontrar a data actual com PowerShell

uma das formas mais fáceis de descobrir a data actual com PowerShell é usando o Get-Date cmdlet. Este comando mostra a data e hora actuais, como se mostra em baixo.,

PS> Get-DateSunday, November 22, 2020 1:25:57 AM

por omissão, Get-Date parece que só devolve a data e hora actuais, mas, na realidade, está de facto a devolver muito mais informação. Para encontrar esta informação, encaminhe a saída para o Format-List cmdlet como mostrado abaixo.

Você também pode usar o Get-Member cmdlet para encontrar todas as propriedades do objeto executando Get-Date | Get-Member -MemberType Properties também.,

se verificar o tipo de objecto Get-Date devolve, irá notar que é um System.DateTime tipo de objecto. Esta classe é o que expõe todas as diferentes propriedades e métodos que você vê. Você pode descobrir o tipo de objeto usando Get-Member ou usando o GetType() como mostrado abaixo.

PS> (Get-Date).GetType().FullNameSystem.DateTime

Uma vez que você veja todas as propriedades disponíveis que você tem disponíveis, você pode então referenciá-las com a notação de ponto como mostrado abaixo.,

PS> (Get-Date).Year2020PS> (Get-Date).DayOfWeekSundayPS> (Get-Date).Month11PS> (Get-Date).DayOfYear327

notation is dot notation a bit too “devvy” for you? Se assim for, você também pode usar o parâmetro DisplayHint para alcançar o mesmo resultado.

Usando Get-Date é a maneira mais simples de encontrar a data atual e vários atributos, mas você pode fazer muito mais!

aritmética de data com PowerShell

digamos que você precisa saber a data e / ou hora um certo número de dias, anos ou minutos no passado ou no futuro. Você pode encontrar esta informação usando métodos.,

Usando DateTime Métodos

System.DateTime objeto Get-Date retorna dispõe de vários métodos que você pode invocar para adicionar ou remover pedaços de tempo. Se você executar Get-Date | Get-Member, você verá vários métodos que começam com Add.

AddDays Method datetime AddDays(double value)AddHours Method datetime AddHours(double value)AddMilliseconds Method datetime AddMilliseconds(double value)AddMinutes Method datetime AddMinutes(double value)AddMonths Method datetime AddMonths(int months)AddSeconds Method datetime AddSeconds(double value)AddTicks Method datetime AddTicks(long value)AddYears Method datetime AddYears(int value)

você pode chamar cada um destes métodos para encontrar uma data / hora no futuro ou no passado. Abaixo você verá alguns exemplos de invocar cada um destes métodos e sua saída.,

usando o novo período de tempo

e se você quisesse saber a diferença entre duas datas; não apenas adicionando um número específico de blocos de tempo? Uma maneira de fazer isso é usar o New-Timespan cmdlet. TheNew-Timespan cmdlet generatesTimeSpan objects which represent date/time differences or spans.

Use the New-TimeSpancmdlet by providing aStartandEnd date / time as parameters., Por exemplo, se você gostaria de encontrar a diferença entre 23 de novembro de 2020 à meia-noite e 31 de dezembro de 2020 à meia-noite, você poderia usar o seguinte trecho de código.

UsandoTimeSpan objectos, poderá encontrar diferenças de data / hora em qualquer incremento que deseje.

comparando datas

não só você pode encontrar diferenças nas datas e horas, como você também pode compará-las usando operadores de PowerShell padrão. PowerShell sabe quando uma data é ” menor que “(mais cedo que) ou” maior que ” (mais tarde que) outra data.,

Para comparar datas, basta criar dois DateTime objetos usando Get-Date ou talvez por vazamento de cadeias de caracteres com e, em seguida, utilizar o padrão do PowerShell os operadores lt ou gt.

pode ver um exemplo simples de comparação de datas abaixo.

#Declaring the datePS> $Date1 = (Get-Date -Month 11 -Day 14 -Year 2020)PS> $Date2 = Get-DatePS> $Date1 -lt $Date2True

converter Strings para objetos DateTime

PowerShell também pode exibir datas em vários formatos., Por exemplo, digamos que você tem um arquivo CSV ou planilha com várias datas definidas no formato que você vê abaixo na coluna date_time_utc. O formato é atualmente YYYY-MM-DDThh:mm:ss.0000000Z.

Você gostaria de analisar este arquivo e encontrar todas as linhas com uma data de sete dias ou mais.

Formato de Data Exemplo

PowerShell, por padrão, não sabe o que 2020-09-07T13:35:08.4780000Z é a data e a hora; ele só acha que é uma cadeia de caracteres simples., Para que o PowerShell entenda, você deve primeiro convertê-lo para um id

objeto comoGet-Dateretorna.

moldar uma cadeia para um id

objecto, prefaciar a cadeia (ou variável) com. Quando você faz isso, o PowerShell tenta interpretar o texto como uma data e hora, então lhe fornece todas as propriedades e métodos disponíveis neste tipo de objeto.,

PS> $Date = "2020-09-07T13:35:08.4780000Z"PS> $DateMonday, September 07, 2020 1:35:08 PM

PowerShell Date Formatting

Agora que você está ciente dos métodos básicos de usar datas, é hora de aprofundar o tópico. Vamos jogar um pouco mais usando formatos diferentes para exibir datas.

sempre que executar Get-Date, irá ver um resultado como Monday, September 07, 2020 1:35:08 PM. Esta saída é na verdade um objeto DateTime com propriedades e métodos; não uma cadeia simples., But, you can convert this DateTime object to a string and represent it differently using various date formatting methods.

DateTime Métodos

Uma maneira de mudar-se como uma DateTime objeto é exibido é utilizando métodos no DateTime objeto., DateTime objeto tem quatro métodos que você pode usar para alterar a formatação:

  • ToLongDateString()
  • ToShortDateString()
  • ToLongTimeString()
  • ToShortTimeString()

Você pode ver um exemplo do uso de ToShortDateString() e ToShortTimeString() métodos abaixo.,

PS> $Date = $DatePS> $date.ToShortDateString() + " " + $date.ToShortTimeString()9/7/2020 7:05 PM

O Parâmetro de Formato

Uma forma de alterar o formato de data de uma DateTime objeto é usando Get-Date para gerar o objeto e o Format parâmetro para alterar o formato. O parâmetro Format aceita uma cadeia de caracteres cada um representando como uma cadeia de datas / horas deve parecer.

pode ver alguns exemplos dos caracteres que pode usar com o parâmetro Format.,

Check out the Microsoft documentation for a full breakdown of all the characters you can use with the Format.

verá assim que usar o parâmetro Format, Get-Date não mais devolve um DateTime object mas agora cadeias de cadeia.,

PS> (Get-Date -Format D).GetType().FullNameSystem.String

O UFormat Parâmetro

Semelhante ao Format parâmetro, você também tem uma UFormat parâmetro com o Get-Date cmdlet. O parâmetro UFormat permite definir formatos de data usando a formatação de data UNIX.

O parâmetro UFormat é semelhante ao parâmetro Format na medida em que pode combinar caracteres de formato de data para alterar a forma como a data é devolvida como uma cadeia de caracteres. Por exemplo, experimente os seguintes formatos e veja o que é devolvido.,

Pode também combinar estes caracteres de formato de data. O trecho de código a seguir usa o d m e Ycaracteres para retornar a data no formato dd-mm-yyyy and usa r personagem de volta a tempo de formato de 12 horas usando o fuso horário t caractere.

PS> Get-Date -UFormat "%d-%m-%Y %r %Z"22-11-2020 06:10:55 PM +05

Check out the Microsoft documentation for a full breakdown of all the characters you can use with theUFormat parâmetro.