Condividi tramite


Get-Date

Ottiene la data e l'ora correnti.

Sintassi

Get-Date
   [[-Date] <DateTime>]
   [-Year <Int32>]
   [-Month <Int32>]
   [-Day <Int32>]
   [-Hour <Int32>]
   [-Minute <Int32>]
   [-Second <Int32>]
   [-Millisecond <Int32>]
   [-DisplayHint <DisplayHintType>]
   [-Format <String>]
   [<CommonParameters>]
Get-Date
   [[-Date] <DateTime>]
   [-Year <Int32>]
   [-Month <Int32>]
   [-Day <Int32>]
   [-Hour <Int32>]
   [-Minute <Int32>]
   [-Second <Int32>]
   [-Millisecond <Int32>]
   [-DisplayHint <DisplayHintType>]
   [-UFormat <String>]
   [<CommonParameters>]

Descrizione

Il Get-Date cmdlet ottiene un oggetto DateTime che rappresenta la data corrente o una data specificata. Get-Date può formattare la data e l'ora in diversi formati .NET e UNIX. È possibile usare Get-Date per generare una stringa di caratteri di data o ora e quindi inviare la stringa ad altri cmdlet o programmi.

Get-Date usa le impostazioni cultura correnti del sistema operativo per determinare la formattazione dell'output. Per visualizzare le impostazioni del computer, usare (Get-Culture).DateTimeFormat.

Esempio

Esempio 1: Ottenere la data e l'ora correnti

In questo esempio viene Get-Date visualizzata la data e l'ora di sistema correnti. L'output si trova nei formati long-date e long-time.

Get-Date

Tuesday, June 25, 2019 14:53:32

Esempio 2: Ottenere elementi della data e dell'ora correnti

In questo esempio viene illustrato come usare Get-Date per ottenere l'elemento data o ora. Il parametro usa gli argomenti Date, Time o DateTime.

Get-Date -DisplayHint Date

Tuesday, June 25, 2019

Get-Date usa il parametro DisplayHint con l'argomento Date per ottenere solo la data.

Esempio 3: Ottenere la data e l'ora con un identificatore di formato .NET

In questo esempio viene usato un identificatore di formato .NET per personalizzare il formato dell'output. L'output è un oggetto String .

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

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

Get-Date usa il parametro Format per specificare diversi identificatori di formato.

Gli identificatori di formato .NET usati in questo esempio sono definiti come segue:

Identificatore Definizione
dddd Giorno della settimana - nome completo
MM Numero del mese
dd Giorno del mese - 2 cifre
yyyy Anno in formato a 4 cifre
HH:mm Tempo in formato 24 ore - nessun secondo
K Differenza di fuso orario dalla coordinata ora universale (UTC)

Per altre informazioni sugli identificatori di formato .NET, vedere Stringhe di formato di data e ora personalizzate.

Esempio 4: Ottenere la data e l'ora con un identificatore UFormat

In questo esempio vengono usati diversi identificatori di formato UFormat per personalizzare il formato dell'output. L'output è un oggetto String .

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

Tuesday 06/25/2019 16:19 -07

Get-Date usa il parametro UFormat per specificare diversi identificatori di formato.

Gli identificatori di formato UFormat usati in questo esempio sono definiti come segue:

Identificatore Definizione
%A Giorno della settimana - nome completo
%m Numero del mese
%d Giorno del mese - 2 cifre
%Y Anno in formato a 4 cifre
%R Tempo in formato 24 ore - nessun secondo
%Z Differenza di fuso orario dalla coordinata ora universale (UTC)

Per un elenco di identificatori di formato UFormat validi, vedere la sezione Note.

Esempio 5: Ottenere il giorno di una data dell'anno

In questo esempio viene utilizzata una proprietà per ottenere il giorno numerico dell'anno.

Il calendario gregoriano ha 365 giorni, ad eccezione degli anni bisestili con 366 giorni. Ad esempio, il 31 dicembre 2020 è il giorno 366.

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

366

Get-Date usa tre parametri per specificare la data: Anno, Mese e Giorno. Il comando viene sottoposto a wrapping tra parentesi in modo che il risultato venga valutato dalla proprietà DayofYear .

Esempio 6: Controllare se una data viene modificata per l'ora legale

In questo esempio viene utilizzato un metodo booleano per verificare se una data viene modificata in base all'ora legale.

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

True

Una variabile archivia $DST il risultato di Get-Date. $DST usa il metodo IsDaylightSavingTime per verificare se la data viene modificata per l'ora legale.

Esempio 7: Convertire l'ora corrente in ora UTC

In questo esempio l'ora corrente viene convertita in ora UTC. L'offset UTC per le impostazioni locali del sistema viene usato per convertire l'ora. Una tabella nella sezione Notes elenca gli identificatori di formato UFormat validi.

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 il parametro UFormat con gli identificatori di formato per visualizzare la data e l'ora di sistema correnti. L'identificatore di formato %Z rappresenta l'offset UTC di -07.

La $Time variabile archivia la data e l'ora di sistema correnti. $Time utilizza il ToUniversalTime() metodo per convertire l'ora in base all'offset UTC del computer.

Esempio 8: Creare un timestamp

In questo esempio, un identificatore di formato crea un oggetto String timestamp per un nome di directory. Il timestamp include la data, l'ora e l'offset 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

La $timestamp variabile archivia i risultati di un Get-Date comando. Get-Dateusa il parametro Format con l'identificatore di formato minuscolo o per creare un oggetto String timestamp. L'oggetto viene inviato alla pipeline a ForEach-Object. ScriptBlock contiene la $_ variabile che rappresenta l'oggetto pipeline corrente. La stringa timestamp è delimitata da due punti che vengono sostituiti da punti.

New-Item usa il parametro Path per specificare il percorso di una nuova directory. Il percorso include la $timestamp variabile come nome della directory. Il parametro Type specifica che viene creata una directory.

Esempio 9: Mostra impostazioni cultura invarianti

ToString() Converte un oggetto DateTime in string utilizzando l'impostazione delle impostazioni cultura correnti. Tuttavia, l'interpretazione delle espressioni di PowerShell usa sempre l'impostazione delle impostazioni cultura invarianti.

Ad esempio, in un sistema con le en-US impostazioni cultura, il ToString() metodo formatta la data usando le en-US impostazioni 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

Parametri

-Date

Specifica una data e un'ora. L'ora è facoltativa e, se non specificata, restituisce 00:00:00. Immettere la data e l'ora in un formato standard per le impostazioni locali attualmente selezionate. È possibile modificare le impostazioni locali correnti usando il Set-Culture cmdlet .

Ad esempio, in inglese degli Stati Uniti:

Get-Date -Date "6/25/2019 12:30:22" restituisce martedì 25 giugno 2019 12:30:22

Tipo:DateTime
Alias:LastWriteTime
Posizione:0
Valore predefinito:None
Necessario:False
Accettare l'input della pipeline:True
Accettare caratteri jolly:False

-Day

Specifica il giorno del mese visualizzato. Immettere un valore compreso tra 1 e 31.

Se il valore specificato è maggiore del numero di giorni in un mese, PowerShell aggiunge il numero di giorni al mese. Ad esempio, Get-Date -Month 4 -Day 31 visualizza il 1° maggio, non il 31 aprile.

Tipo:Int32
Posizione:Named
Valore predefinito:None
Necessario:False
Accettare l'input della pipeline:False
Accettare caratteri jolly:False

-DisplayHint

Determina quali elementi della data e dell'ora visualizzare.

I valori accettati sono i seguenti:

  • Data: visualizza solo la data
  • Ora: visualizza solo l'ora
  • DateTime: visualizza la data e l'ora
Tipo:DisplayHintType
Valori accettati:Date, Time, DateTime
Posizione:Named
Valore predefinito:None
Necessario:False
Accettare l'input della pipeline:False
Accettare caratteri jolly:False

-Format

Visualizza la data e l'ora nel formato di Microsoft .NET Framework indicato dall'identificatore di formato. Il parametro Format restituisce un oggetto String .

Per un elenco degli identificatori di formato .NET disponibili, vedere Stringhe di formato di data e ora personalizzate.

Quando si utilizza il parametro Format , Get-Date ottiene solo le proprietà dell'oggetto DateTime necessarie per visualizzare la data. Di conseguenza, alcune delle proprietà e dei metodi degli oggetti DateTime potrebbero non essere disponibili.

A partire da PowerShell 5.0, è possibile usare i formati aggiuntivi seguenti come valori per il parametro Format .

  • FileDate. Rappresentazione descrittiva del file o del percorso della data corrente nell'ora locale. Il formato è yyyyMMdd (con distinzione tra maiuscole e minuscole, usando un anno a 4 cifre, un mese a 2 cifre e un giorno a 2 cifre). Ad esempio: 20190627.

  • FileDateUniversal. Rappresentazione descrittiva del file o del percorso della data corrente in formato UTC (Universal Time). Il formato è yyyyMMddZ (con distinzione tra maiuscole e minuscole, usando un anno a 4 cifre, un mese a 2 cifre, un giorno a 2 cifre e la lettera Z come indicatore UTC). Ad esempio: 20190627Z.

  • FileDateTime. Rappresentazione descrittiva del file o del percorso della data e dell'ora correnti nell'ora locale, in formato di 24 ore. Il formato è yyyyMMddTHHmmssffff (con distinzione tra maiuscole e minuscole, usando un anno a 4 cifre, un mese a 2 cifre, un giorno a 2 cifre, una lettera T come separatore di tempo, un'ora a 2 cifre, un minuto a 2 cifre, un secondo a 2 cifre e un millisecondo a 4 cifre). Ad esempio: 20190627T0840107271.

  • FileDateTimeUniversal. Rappresentazione di file o percorso della data e dell'ora correnti in formato UTC (Universal Time), in formato 24 ore. Il formato è yyyyMMddTHHmmssffffZ (con distinzione tra maiuscole e minuscole, usando un anno a 4 cifre, un mese a 2 cifre, un giorno a 2 cifre, una lettera T come separatore di tempo, un'ora a 2 cifre, un minuto a 2 cifre, un secondo di 2 cifre, un millisecondo a 4 cifre e la lettera Z come indicatore UTC). Ad esempio: 20190627T1540500718Z.

Tipo:String
Posizione:Named
Valore predefinito:None
Necessario:False
Accettare l'input della pipeline:False
Accettare caratteri jolly:False

-Hour

Specifica l'ora visualizzata. Immettere un valore compreso tra 0 e 23.

Tipo:Int32
Posizione:Named
Valore predefinito:None
Necessario:False
Accettare l'input della pipeline:False
Accettare caratteri jolly:False

-Millisecond

Specifica i millisecondi nella data. Immettere un valore compreso tra 0 e 999.

Questo parametro è stato introdotto in PowerShell 3.0.

Tipo:Int32
Posizione:Named
Valore predefinito:None
Necessario:False
Accettare l'input della pipeline:False
Accettare caratteri jolly:False

-Minute

Specifica il minuto visualizzato. Immettere un valore compreso tra 0 e 59.

Tipo:Int32
Posizione:Named
Valore predefinito:None
Necessario:False
Accettare l'input della pipeline:False
Accettare caratteri jolly:False

-Month

Specifica il mese visualizzato. Immettere un valore compreso tra 1 e 12.

Tipo:Int32
Posizione:Named
Valore predefinito:None
Necessario:False
Accettare l'input della pipeline:False
Accettare caratteri jolly:False

-Second

Specifica i secondi visualizzati. Immettere un valore compreso tra 0 e 59.

Tipo:Int32
Posizione:Named
Valore predefinito:None
Necessario:False
Accettare l'input della pipeline:False
Accettare caratteri jolly:False

-UFormat

Visualizza la data e l'ora nel formato UNIX. Il parametro UFormat restituisce un oggetto stringa.

Gli identificatori UFormat sono preceduti da un segno di percentuale (%), ad esempio , %m%de %Y. La sezione Notes contiene una tabella di identificatori UFormat validi.

Tipo:String
Posizione:Named
Valore predefinito:None
Necessario:False
Accettare l'input della pipeline:False
Accettare caratteri jolly:False

-Year

Specifica l'anno visualizzato. Immettere un valore compreso tra 1 e 9999.

Tipo:Int32
Posizione:Named
Valore predefinito:None
Necessario:False
Accettare l'input della pipeline:False
Accettare caratteri jolly:False

Input

DateTime

È possibile inviare tramite pipe un oggetto DateTime a questo cmdlet.

Output

DateTime

Per impostazione predefinita, questo cmdlet restituisce un oggetto DateTime .

Quando un oggetto DateTime viene inviato alla pipeline a un cmdlet come Add-Content quello che prevede l'input stringa, PowerShell converte l'oggetto in un oggetto String .

ToString() Converte un oggetto DateTime in un valore String utilizzando l'impostazione delle impostazioni cultura correnti. Tuttavia, l'interpretazione delle espressioni di PowerShell usa sempre l'impostazione delle impostazioni cultura invarianti. Per vedere come le impostazioni cultura invarianti sono diverse, vedere l'esempio 9.

Per visualizzare le proprietà e i metodi di un oggetto, inviare l'oggetto verso il basso nella pipeline a Get-Member. Ad esempio: Get-Date | Get-Member.

String

Quando si usano i parametri Format o UFormat , questo cmdlet restituisce oggetti String .

Note

I formati predefiniti per l'output degli oggetti DateTime sono formati di data e ora estesa per le impostazioni locali attualmente selezionate.

Gli identificatori UFormat validi vengono visualizzati nella tabella seguente:

Importante

Gli identificatori UFormat vengono modificati o aggiunti nelle versioni più recenti di PowerShell. Ad esempio, %F è stato aggiunto in PowerShell 6.2, quindi non è disponibile in Windows PowerShell 5.1 o versione precedente. Tenere presente questo aspetto quando si usano gli identificatori UFormat negli script progettati per l'esecuzione in più versioni di PowerShell.

Identificatore di formato Significato Esempio
%A Giorno della settimana - nome completo lunedì
%a Giorno della settimana - nome abbreviato Lun
%B Nome mese - completo Gennaio
%b Nome mese - abbreviato Jan
%C Secolo 20 per il 2019
%c Data e ora - abbreviato Gio 27 giugno 08:44:18 2019
%D Data in formato mm/gg/yy 06/27/19
%d Giorno del mese - 2 cifre 05
%e Giorno del mese - preceduto da uno spazio se solo una singola cifra <spazio>5
%G Uguale a 'Y'
%g Uguale a 'y'
%H Ora in formato 24 ore 17
%h Uguale a 'b'
%I Ora in formato 12 ore 05
%j Giorno dell'anno (non include leading 0 - Fixed in PowerShell 6+) 1-366
%k Uguale a 'H'
%l Uguale a 'I' (maiuscolo I) 05
%M Minuti 35
%m Numero del mese 06
%n carattere di nuova riga
%p AM o PM
%R Tempo in formato 24 ore -no secondi 17:45
%r Tempo in formato 12 ore 09:15:36
%S Secondi 05
%s Secondi trascorsi dall'1 gennaio 1970 00:00:00 (convertito in ora locale) 1150451174.95705
%t Carattere di tabulazioni orizzontali
%T Tempo in formato 24 ore 17:45:52
%U Uguale a 'W'
%u Giorno della settimana - numero Domenica = 0
%V Settimana dell'anno 01-53
%w Uguale a 'u'
%W Settimana dell'anno 00-52
%X Uguale a 'T'
%x Data in formato standard per le impostazioni locali 27/06/19 per Inglese-Stati Uniti
%Y Anno in formato a 4 cifre 2019
%y Anno in formato a 2 cifre 19
%Z Differenza di fuso orario dalla coordinata ora universale (UTC) -07

Nota

Il comportamento di Windows PowerShell con Get-Date -UFormat %s non è corretto in due aspetti:

  • Il valore restituito si basa sull'ora locale anziché sull'ora UTC.
  • La rappresentazione di stringa del valore dei secondi ha una parte frazionaria. L'output è sensibile alle impostazioni cultura rispetto al segno decimale.

Questi comportamenti sono stati corretti in PowerShell 6 e versioni successive.