Get-Date

Gets the current date and time.

Syntax

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

Description

The Get-Date cmdlet gets a DateTime object that represents the current date or a date that youspecify. Get-Date can format the date and time in several .NET and UNIX formats. You can useGet-Date to generate a date or time character string, and then send the string to other cmdlets orprograms.

Get-Date uses the computer's culture settings to determine how the output is formatted. To viewyour computer's settings, use (Get-Culture).DateTimeFormat.

Examples

Example 1: Get the current date and time

In this example, Get-Date displays the current system date and time. The output is in thelong-date and long-time formats.

Get-DateTuesday, June 25, 2019 14:53:32

Example 2: Get elements of the current date and time

This example shows how to use Get-Date to get either the date or time element. The parameter usesthe arguments Date, Time, or DateTime.

Get-Date -DisplayHint DateTuesday, June 25, 2019

Get-Date uses the DisplayHint parameter with the Date argument to get only the date.

Example 3: Get the date and time with a .NET format specifier

In this example, a .NET format specifier is used to customize the output's format. The output is aString object.

Get-Date -Format "dddd MM/dd/yyyy HH:mm K"Tuesday 06/25/2019 16:17 -07:00

Get-Date uses the Format parameter to specify several format specifiers.

The .NET format specifiers used in this example are defined as follows:

SpecifierDefinition
ddddDay of the week - full name
MMMonth number
ddDay of the month - 2 digits
yyyyYear in 4-digit format
HH:mmTime in 24-hour format -no seconds
KTime zone offset from Universal Time Coordinate (UTC)

For more information about .NET format specifiers, seeCustom date and time format strings.

Example 4: Get the date and time with a UFormat specifier

In this example, several UFormat format specifiers are used to customize the output's format.The output is a String object.

Get-Date -UFormat "%A %m/%d/%Y %R %Z"Tuesday 06/25/2019 16:19 -07

Get-Date uses the UFormat parameter to specify several format specifiers.

The UFormat format specifiers used in this example are defined as follows:

SpecifierDefinition
%ADay of the week - full name
%mMonth number
%dDay of the month - 2 digits
%YYear in 4-digit format
%RTime in 24-hour format -no seconds
%ZTime zone offset from Universal Time Coordinate (UTC)

For a list of valid UFormat format specifiers, see the Notes section.

Example 5: Get a date's day of the year

In this example, a property is used to get the numeric day of the year.

The Gregorian calendar has 365 days, except for leap years that have 366 days. For example, December31, 2020 is day 366.

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

Get-Date uses three parameters to specify the date: Year, Month, and Day. The commandis wrapped with parentheses so that the result is evaluated by the DayofYear property.

Example 6: Check if a date is adjusted for daylight savings time

This example uses a boolean method to verify if a date is adjusted by daylight savings time.

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

A variable, $DST stores the result of Get-Date. $DST uses the IsDaylightSavingTime methodto test if the date is adjusted for daylight savings time.

Example 7: Convert the current time to UTC time

In this example, the current time is converted to UTC time. The UTC offset for the system's localeis used to convert the time. A table in the Notes section lists the valid UFormatformat specifiers.

Get-Date -UFormat "%A %B/%d/%Y %T %Z"$Time = Get-Date$Time.ToUniversalTime()Wednesday June/26/2019 10:45:26 -07Wednesday, June 26, 2019 17:45:26

Get-Date uses the UFormat parameter with format specifiers to display the current system dateand time. The format specifier %Z represents the UTC offset of -07.

The $Time variable stores the current system date and time. $Time uses the ToUniversalTime()method to convert the time based on the computer's UTC offset.

Example 8: Create a timestamp

In this example, a format specifier creates a timestamp String object for a directory name. Thetimestamp includes the date, time, and UTC offset.

$timestamp = Get-Date -Format o | ForEach-Object { $_ -replace ":", "." }New-Item -Path C:\Test\$timestamp -Type DirectoryDirectory: C:\TestMode                LastWriteTime         Length Name----                -------------         ------ ----d-----         6/27/2019    07:59                2019-06-27T07.59.24.4603750-07.00

The $timestamp variable stores the results of a Get-Date command. Get-Date uses the Formatparameter with the format specifier of lowercase o to create a timestamp String object. Theobject is sent down the pipeline to ForEach-Object. A ScriptBlock contains the $_ variablethat represents the current pipeline object. The timestamp string is delimited by colons that arereplaced by periods.

New-Item uses the Path parameter to specify the location for a new directory. The pathincludes the $timestamp variable as the directory name. The Type parameter specifies that adirectory is created.

Parameters

-Date

Specifies a date and time. Time is optional and if not specified, returns 00:00:00.

Enter the date and time in a format that is standard for the system locale.

For example, in US English:

Get-Date -Date "6/25/2019 12:30:22" returns Tuesday, June 25, 2019 12:30:22

Type:DateTime
Aliases:LastWriteTime
Position:0
Default value:None
Accept pipeline input:True (ByPropertyName, ByValue)
Accept wildcard characters:False
-Day

Specifies the day of the month that is displayed. Enter a value from 1 to 31.

If the specified value is greater than the number of days in a month, PowerShell adds the number ofdays to the month. For example, Get-Date -Month 2 -Day 31 displays March 3, not February 31.

Type:Int32
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False
-DisplayHint

Determines which elements of the date and time are displayed.

The accepted values are as follows:

  • Date: displays only the date
  • Time: displays only the time
  • DateTime: displays the date and time
Type:DisplayHintType
Accepted values:Date, Time, DateTime
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False
-Format

Displays the date and time in the Microsoft .NET Framework format indicated by the format specifier.The Format parameter outputs a String object.

For a list of available .NET format specifiers, seeCustom date and time format strings.

When the Format parameter is used, Get-Date only gets the DateTime object's propertiesnecessary to display the date. As a result, some of the properties and methods of DateTimeobjects might not be available.

Starting in PowerShell 5.0, you can use the following additional formats as values for theFormat parameter.

  • FileDate. A file or path-friendly representation of the current date in local time. The formatis yyyyMMdd (case-sensitive, using a 4-digit year, 2-digit month, and 2-digit day). For example:20190627.

  • FileDateUniversal. A file or path-friendly representation of the current date in universaltime (UTC). The format is yyyyMMddZ (case-sensitive, using a 4-digit year, 2-digit month,2-digit day, and the letter Z as the UTC indicator). For example: 20190627Z.

  • FileDateTime. A file or path-friendly representation of the current date and time in localtime, in 24-hour format. The format is yyyyMMddTHHmmssffff (case-sensitive, using a 4-digityear, 2-digit month, 2-digit day, the letter T as a time separator, 2-digit hour, 2-digitminute, 2-digit second, and 4-digit millisecond). For example: 20190627T0840107271.

  • FileDateTimeUniversal. A file or path-friendly representation of the current date and time inuniversal time (UTC), in 24-hour format. The format is yyyyMMddTHHmmssffffZ (case-sensitive,using a 4-digit year, 2-digit month, 2-digit day, the letter T as a time separator, 2-digithour, 2-digit minute, 2-digit second, 4-digit millisecond, and the letter Z as the UTCindicator). For example: 20190627T1540500718Z.

Type:String
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False
-Hour

Specifies the hour that is displayed. Enter a value from 0 to 23.

Type:Int32
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False
-Millisecond

Specifies the milliseconds in the date. Enter a value from 0 to 999.

This parameter was introduced in PowerShell 3.0.

Type:Int32
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False
-Minute

Specifies the minute that is displayed. Enter a value from 0 to 59.

Type:Int32
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False
-Month

Specifies the month that is displayed. Enter a value from 1 to 12.

Type:Int32
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False
-Second

Specifies the second that is displayed. Enter a value from 0 to 59.

Type:Int32
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False
-UFormat

Displays the date and time in UNIX format. The UFormat parameter outputs a string object.

UFormat specifiers are preceded by a percent sign (%), for example, %m, %d, and %Y. The Notessection contains a table of valid UFormat specifiers.

When the UFormat parameter is used, Get-Date only gets the DateTime object's propertiesnecessary to display the date. As a result, some of the properties and methods of DateTimeobjects might not be available.

Type:String
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False
-Year

Specifies the year that is displayed. Enter a value from 1 to 9999.

Type:Int32
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False

Inputs

Pipeline input

Get-Date accepts pipeline input. For example, Get-ChildItem | Get-Date.

Outputs

System.DateTime or System.String

Get-Date returns a DateTime object except when the Format and UFormat parameters areused. The Format or UFormat parameters return String objects.

When a DateTime object is sent down the pipeline to a cmdlet such as Add-Content that expectsstring input, PowerShell converts the object to a String object.

The method (Get-Date).ToString() converts a DateTime object a String object.

To display an object's properties and methods, send the object down the pipeline to Get-Member.For example, Get-Date | Get-Member.

Notes

DateTime objects are in long-date and long-time formats for the system locale.

The valid UFormat specifiers are displayed in the following table:

Format specifierMeaningExample
%ADay of the week - full nameMonday
%aDay of the week - abbreviated nameMon
%BMonth name - fullJanuary
%bMonth name - abbreviatedJan
%CCentury20 for 2019
%cDate and time - abbreviatedThu Jun 27 08:44:18 2019
%DDate in mm/dd/yy format06/27/19
%dDay of the month - 2 digits05
%eDay of the month - digit preceded by a space<space>5
%FDate in YYYY-mm-dd format, equal to %Y-%m-%d (the ISO 8601 date format)2019-06-27
%GSame as 'Y'
%gSame as 'y'
%HHour in 24-hour format17
%hSame as 'b'
%IHour in 12-hour format05
%jDay of the year1-366
%kSame as 'H'
%lSame as 'I' (Upper-case I)05
%MMinutes35
%mMonth number06
%nnewline character
%pAM or PM
%RTime in 24-hour format -no seconds17:45
%rTime in 12-hour format09:15:36 AM
%SSeconds05
%sSeconds elapsed since January 1, 1970 00:00:001150451174
%tHorizontal tab character
%TTime in 24-hour format17:45:52
%USame as 'W'
%uDay of the week - numberMonday = 1
%VWeek of the year01-53
%wSame as 'u'
%WWeek of the year00-52
%XSame as 'T'
%xDate in standard format for locale06/27/19 for English-US
%YYear in 4-digit format2019
%yYear in 2-digit format19
%ZTime zone offset from Universal Time Coordinate (UTC)-07