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 executandoGet-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-TimeSpan
cmdlet by providing aStart
andEnd
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.
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-Date
retorna.
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 Y
caracteres 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.
Deixe uma resposta