Get-Date

현재 날짜 및 시간을 가져옵니다.

Syntax

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

cmdlet은 Get-Date 지정한 현재 날짜 또는 날짜를 나타내는 DateTime 개체를 가져옵니다. Get-Date 은 여러 .NET 및 UNIX 형식으로 날짜 및 시간 형식을 지정할 수 있습니다. 날짜 또는 시간 문자열을 생성한 다음 문자열을 다른 cmdlet 또는 프로그램으로 보내는 데 사용할 Get-Date 수 있습니다.

Get-Date 는 운영 체제의 현재 문화권 설정을 사용하여 출력의 형식을 지정하는 방법을 결정합니다. 컴퓨터의 설정을 보려면 .를 사용합니다 (Get-Culture).DateTimeFormat.

예제

예제 1: 현재 날짜 및 시간 가져오기

이 예제에서는 Get-Date 현재 시스템 날짜 및 시간을 표시합니다. 출력은 장기 및 장기 형식입니다.

Get-Date

Tuesday, June 25, 2019 14:53:32

예제 2: 현재 날짜 및 시간의 요소 가져오기

이 예제에서는 날짜 또는 시간 요소를 가져오는 데 사용하는 Get-Date 방법을 보여줍니다. 매개 변수는 Date, Time 또는 DateTime 인수 사용합니다.

Get-Date -DisplayHint Date

Tuesday, June 25, 2019

Get-DateDate 인수와 함께 DisplayHint 매개 변수를 사용하여 날짜만 가져옵니다.

예제 3: .NET 형식 지정자를 사용하여 날짜 및 시간 가져오기

이 예제에서는 .NET 형식 지정자를 사용하여 출력의 형식을 사용자 지정합니다. 출력은 String 개체입니다.

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

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

Get-Date는 Format 매개 변수를 사용하여 여러 형식 지정자를 지정합니다.

이 예제에 사용된 .NET 형식 지정자는 다음과 같이 정의됩니다.

지정자 정의
dddd 요일 - 전체 이름
MM 월 번호
dd 월의 일 - 2자리 숫자
yyyy 4자리 형식의 연도
HH:mm 24시간 형식의 시간 - 초 없음
K UTC(유니버설 시간 좌표)의 표준 시간대 오프셋

.NET 형식 지정자에 대한 자세한 내용은 사용자 지정 날짜 및 시간 형식 문자열을 참조 하세요.

예제 4: UFormat 지정자를 사용하여 날짜 및 시간 가져오기

이 예제에서는 출력의 형식을 사용자 지정하는 데 여러 UFormat 형식 지정자를 사용합니다. 출력은 String 개체입니다.

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

Tuesday 06/25/2019 16:19 -07

Get-Date 에서는 UFormat 매개 변수를 사용하여 여러 형식 지정자를 지정합니다.

이 예제에 사용된 UFormat 형식 지정자는 다음과 같이 정의됩니다.

지정자 정의
%A 요일 - 전체 이름
%m 월 번호
%d 월의 일 - 2자리 숫자
%Y 4자리 형식의 연도
%R 24시간 형식의 시간 - 초 없음
%Z UTC(유니버설 시간 좌표)의 표준 시간대 오프셋

유효한 UFormat 형식 지정자 목록은 Notes 섹션을 참조하세요.

예제 5: 날짜의 연도 날짜 가져오기

이 예제에서 속성은 연도의 숫자 일을 가져오는 데 사용됩니다.

그레고리오력은 366일인 윤년을 제외하고 365일이 있습니다. 예를 들어 2020년 12월 31일은 366일입니다.

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

366

Get-Date 에서는 세 개의 매개 변수를 사용하여 연도, 의 날짜를 지정합니다. 이 명령은 DayofYear 속성에 의해 결과가 평가되도록 괄호로 래핑됩니다.

예제 6: 일광 절약 시간을 위해 날짜가 조정되었는지 확인

이 예제에서는 부울 메서드를 사용하여 일광 절약 시간제에 따라 날짜가 조정되는지 확인합니다.

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

True

변수는 $DST .의 Get-Date결과를 저장합니다. $DST는 IsDaylightSavingTime 메서드를 사용하여 일광 절약 시간제에 맞게 날짜가 조정되었는지 테스트합니다.

예제 7: 현재 시간을 UTC 시간으로 변환

이 예제에서 현재 시간은 UTC 시간으로 변환됩니다. 시스템 로캘의 UTC 오프셋은 시간을 변환하는 데 사용됩니다. Notes 섹션의 표에는 유효한 UFormat 형식 지정자가 나열되어 있습니다.

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형식 지정자와 함께 UFormat 매개 변수를 사용하여 현재 시스템 날짜 및 시간을 표시합니다. 형식 지정자 %Z는 -07UTC 오프셋을 나타냅니다.

변수는 $Time 현재 시스템 날짜 및 시간을 저장합니다. $TimeToUniversalTime() 이 메서드를 사용하여 컴퓨터의 UTC 오프셋에 따라 시간을 변환합니다.

예제 8: 타임스탬프 만들기

이 예제에서 형식 지정자는 디렉터리 이름에 대한 타임스탬프 String 개체를 만듭니다. 타임스탬프에는 날짜, 시간 및 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

변수는 $timestamp 명령의 결과를 저장합니다 Get-Date . Get-Date 에서는 Format 매개 변수를 소문 o 자의 형식 지정자와 함께 사용하여 타임스탬프 String 개체를 만듭니다. 개체가 파이프라인 아래로 전송됩니다 ForEach-Object. ScriptBlock에는 현재 파이프라인 개체를 $_ 나타내는 변수가 포함됩니다. 타임스탬프 문자열은 마침표로 대체되는 콜론으로 구분됩니다.

New-Item 에서는 Path 매개 변수를 사용하여 새 디렉터리의 위치를 지정합니다. 경로에는 변수가 $timestamp 디렉터리 이름으로 포함됩니다. Type 매개 변수는 디렉터리가 생성되도록 지정합니다.

예제 9: Unix 타임스탬프 변환

다음은 Unix 시간(1970-01-01 0:00:00 이후의 초 수로 표시됨)을 DateTime으로 변환하는 예제입니다.

Get-Date -UnixTimeSeconds 1577836800

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

예제 10: UTC로 해석된 날짜 값 반환

이 예제에서는 날짜 값을 UTC에 해당하는 값으로 해석하는 방법을 보여줍니다. 예를 들어 이 컴퓨터는 태평양 표준시설정됩니다. 기본적으로 Get-Date 해당 표준 시간대의 값을 반환합니다. AsUTC 매개 변수를 사용하여 값을 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

예제 11: 고정 문화권 표시

현재 ToString() 문화권 설정을 사용하여 DateTime 개체를 String으로 변환합니다. 그러나 PowerShell 식 해석은 항상 고정 문화권 설정을 사용합니다.

예를 들어 문화권이 적용된 en-US 시스템에서 메서드는 ToString() 문화권 설정을 사용하여 날짜의 형식을 en-US 지정합니다.

# 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

매개 변수

-AsUTC

날짜 값을 동등한 시간(UTC)으로 변환합니다.

이 매개 변수는 PowerShell 7.1에서 도입되었습니다.

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

-Date

날짜 및 시간을 지정합니다. 시간은 선택 사항이며 지정하지 않으면 00:00:00을 반환합니다. 현재 선택한 로캘의 표준 형식으로 날짜와 시간을 입력합니다. cmdlet을 사용하여 현재 로캘을 Set-Culture 변경할 수 있습니다.

예를 들어 미국 영어:

Get-Date -Date "6/25/2019 12:30:22" 반환 화요일, 6 월 25, 2019 12:30:22

Type:DateTime
Aliases:LastWriteTime
Position:0
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-Day

표시되는 월의 일을 지정합니다. 1에서 31까지의 값을 입력합니다.

지정된 값이 월의 일 수보다 크면 PowerShell은 해당 월에 일 수를 추가합니다. 예를 들어 Get-Date -Month 4 -Day 31 4월 31일이 아닌 5월 1일을 표시합니다.

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

-DisplayHint

표시되는 날짜 및 시간의 요소를 결정합니다.

허용되는 값은 다음과 같습니다.

  • 날짜: 날짜만 표시합니다.
  • 시간: 시간만 표시합니다.
  • DateTime: 날짜 및 시간을 표시합니다.
Type:DisplayHintType
Accepted values:Date, Time, DateTime
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Format

형식 지정자가 나타내는 Microsoft .NET Framework 형식의 날짜 및 시간을 표시합니다. Format 매개 변수는 String 개체를 출력합니다.

사용 가능한 .NET 형식 지정자 목록은 사용자 지정 날짜 및 시간 형식 문자열을 참조 하세요.

Format 매개 변수를 사용하는 Get-Date 경우 날짜를 표시하는 데 필요한 DateTime 개체의 속성만 가져옵니다. 따라서 DateTime 개체의 일부 속성과 메서드를 사용할 수 없을 수 있습니다.

PowerShell 5.0부터 다음 추가 형식을 Format 매개 변수의 값으로 사용할 수 있습니다.

  • FileDate. 현지 시간으로 현재 날짜의 파일 또는 경로에 친숙한 표현입니다. 형식은 yyyyMMdd 대/소문자를 구분하며 4자리 연도, 2자리 월 및 2자리 요일을 사용합니다. 예: 20190627.

  • FileDateUniversal. UTC(유니버설 타임)의 현재 날짜에 대한 파일 또는 경로 친화적 표현입니다. 형식은 yyyyMMddZ 대/소문자를 구분하며 4자리 연도, 2자리 월, 2자리 일 및 문자를 Z UTC 표시자로 사용합니다. 예: 20190627Z.

  • FileDateTime. 24시간 형식으로 현재 날짜 및 시간을 로컬 시간으로 나타내는 파일 또는 경로에 친숙한 표현입니다. 형식은 yyyyMMddTHHmmssffff 대/소문자를 구분합니다(4자리 연도, 2자리 월, 2자리 일, 문자 T 는 시간 구분 기호, 2자리 시간, 2자리 분, 2자리 초 및 4자리 밀리초). 예: 20190627T0840107271.

  • FileDateTimeUniversal. 24시간 형식의 현재 날짜 및 시간(UTC)의 파일 또는 경로에 친숙한 표현입니다. 형식은 yyyyMMddTHHmmssffffZ 대/소문자를 구분하며, 4자리 연도, 2자리 월, 2자리 일, 문자 T 는 시간 구분 기호, 2자리 시간, 2자리 분, 2자리 초, 4자리 밀리초 및 문자를 Z UTC 표시기로 사용합니다. 예: 20190627T1540500718Z.

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

-Hour

표시되는 시간을 지정합니다. 0에서 23까지의 값을 입력합니다.

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

-Millisecond

날짜의 밀리초를 지정합니다. 0에서 999까지의 값을 입력합니다.

이 매개 변수는 PowerShell 3.0에서 도입되었습니다.

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

-Minute

표시되는 분을 지정합니다. 0에서 59까지의 값을 입력합니다.

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

-Month

표시되는 월을 지정합니다. 1에서 12까지의 값을 입력합니다.

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

-Second

표시되는 두 번째 값을 지정합니다. 0에서 59까지의 값을 입력합니다.

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

-UFormat

날짜 및 시간을 UNIX 형식으로 표시합니다. UFormat 매개 변수는 문자열 개체를 출력합니다.

UFormat 지정자 앞에 백분율 기호(%예: %m, %d%Y. Notes 섹션에는 유효한 UFormat 지정자의 테이블이 포함되어 있습니다.

UFormat 매개 변수를 사용하는 Get-Date 경우 날짜를 표시하는 데 필요한 DateTime 개체의 속성만 가져옵니다. 따라서 DateTime 개체의 일부 속성과 메서드를 사용할 수 없을 수 있습니다.

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

-UnixTimeSeconds

날짜 및 시간은 1970년 1월 1일 0:00:00 이후 초 단위로 표시됩니다.

이 매개 변수는 PowerShell 7.1에서 도입되었습니다.

Type:Int64
Aliases:UnixTime
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-Year

표시되는 연도를 지정합니다. 1에서 9999까지의 값을 입력합니다.

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

입력

DateTime

DateTime 개체를 이 cmdlet으로 파이프할 수 있습니다.

출력

DateTime

기본적으로 이 cmdlet은 DateTime 개체를 반환합니다.

DateTime 개체가 파이프라인을 문자열 입력이 필요한 cmdlet으로 Add-Content 보내면 PowerShell은 개체를 String 개체로 변환합니다.

현재 ToString() 문화권 설정을 사용하여 DateTime 개체를 String으로 변환합니다. 그러나 PowerShell 식 해석은 항상 고정 문화권 설정을 사용합니다. 고정 문화권이 어떻게 다른지 확인하려면 예제 11을 참조하세요.

개체의 속성과 메서드를 표시하려면 파이프라인 Get-Member아래로 개체를 보냅니다. 예들 들어 Get-Date | Get-Member입니다.

String

Format 또는 UFormat 매개 변수를 사용하는 경우 이 cmdlet은 String 개체를 반환합니다.

참고

DateTime 개체의 출력에 대한 기본 형식은 현재 선택한 로캘에 대한 긴 날짜 및 장기 형식입니다.

유효한 UFormat 지정자는 다음 표에 표시됩니다.

Important

UFormat 지정자는 최신 버전의 PowerShell에서 변경되거나 추가됩니다. 예를 들어 %F PowerShell 6.2에 추가되었으므로 Windows PowerShell 5.1 이상에서는 사용할 수 없습니다. 여러 버전의 PowerShell에서 실행되도록 설계된 스크립트에서 UFormat 지정자를 사용할 때는 이 점을 염두에 두어야 합니다.

형식 지정자 의미 예시
%A 요일 - 전체 이름 월요일
%a 요일 - 약어 이름
%B 월 이름 - 전체 January
%b 월 이름 - 약어 1월
%C 세기 2019년 20개
%c 날짜 및 시간 - 약어 2019년 6월 27일 목요일 08:44:18
%D mm/dd/yy 형식의 날짜 06/27/19
%d 월의 일 - 2자리 숫자 05
%e 월의 일 - 앞에 공백(한 자리만 있는 경우) <space>5
%F %YYYY-mm-dd 형식의 날짜로, %Y-%m-%d(ISO 8601 날짜 형식)와 같습니다. 2019-06-27
%G ISO 주 날짜 연도(요일을 포함하는 연도)
%g 'G'와 동일 - 2자리 숫자
%H 24시간 형식의 시간 17
%h 'b'와 동일
%I 12시간 형식의 시간 05
%j 해당 연도의 날 1-366
%k 'H'와 동일
%l 'I'와 동일(대문자 I) 05
%M 35
%m 월 번호 06
%n 줄 줄 문자
%p AM 또는 PM
%R 24시간 형식의 시간 -초 없음 17:45
%r 12시간 형식의 시간 오전 09:15:36
%S 05
%s 1970년 1월 1일 00:00:00(UTC) 이후 경과된 시간(초) 1150451174
%t 가로 탭 문자
%T 24시간 형식의 시간 17:45:52
%U 'W'와 동일
%u 요일 숫자(1-7)(PowerShell 7.2에서 변경됨) 월요일 = 1, 일요일 = 7
%V 올해의 주 01-53
%w 요일 숫자(0-6) 일요일 = 0, 토요일 = 6
%W 올해의 주 00-52
%X 'T'와 동일
%x 로캘에 대한 표준 형식의 날짜 06/27/19 영어-미국
%Y 4자리 형식의 연도 2019
%y 연도(2자리 형식) 19
%Z UTC(유니버설 시간 좌표)의 표준 시간대 오프셋 -07

참고 항목

Windows PowerShell의 -UFormat %s 동작 문제를 해결하기 위해 동작이 변경되었습니다.

  • 반환 값은 UTC 시간을 기반으로 합니다.
  • 값은 정수 초 값(소수 부분 없음)입니다.