Programing

PowerShell에서 DateTime을 형식화하는 방법

lottogame 2020. 6. 25. 08:03
반응형

PowerShell에서 DateTime을 형식화하는 방법


다음 Get-Date과 같이 cmdlet을 아무 문제없이 포맷 할 수 있습니다 .

$date = Get-Date -format "yyyyMMdd"

그러나 변수에 날짜 가 있으면 어떻게 형식을 지정합니까? 아래 진술

$dateStr = $date -format "yyyMMdd"

이 오류를 반환합니다 :

" '-f'연산자의 오른쪽에 값 표현식을 제공해야합니다."


.NET 에서와 동일합니다 .

$DateStr = $Date.ToString("yyyyMMdd")

또는:

$DateStr = '{0:yyyyMMdd}' -f $Date

질문에 대한 답변이 있지만 누락 된 정보가 더 있습니다.

변수 대 Cmdlet

$Date변수에 값이 있고 -f연산자는 다음 형식으로 작동 'format string' -f values합니다. 호출 Get-Date -format "yyyyMMdd"하면 일부 매개 변수를 사용 하여 cmdlet 을 호출합니다 . "yyyyMMdd"값은 매개 변수 값 Format(try help Get-Date -param Format)입니다.

-f 운영자

많은 형식 문자열이 있습니다. 적어도 part1part2를보십시오 . 그녀는를 사용합니다 string.Format('format string', values'). 이라고 생각 'format-string' -f values때문에, -f작업자가 같은 매우 유사하게 작동합니다 string.Format(방법 스택 오버플로에서 질문에서 더 많은 정보를보기위한 몇 가지 차이점이 (가 있지만 : 어떻게 정확히 수행 PowerShell에서의 -f 운영자 작업의 RHS? ).


당신이 할 수있는 한 가지는 :

$date.ToString("yyyyMMdd")

매우 편리한 (아마도 너무 효율적인 것은 아님) 솔루션은 멤버 함수를 사용하는 것입니다 GetDateTimeFormats().

$d = Get-Date
$d.GetDateTimeFormats()

날짜-값에 대한 서식 스타일의 큰 문자열 배열을 출력합니다. 그런 다음 []-operator 를 통해 배열 요소 중 하나를 선택할 수 있습니다 .

PS C:\> $d.GetDateTimeFormats()[12]
Dienstag, 29. November 2016 19.14

간단하고 좋은 방법은 다음과 같습니다.

$time = (Get-Date).ToString("yyyy:MM:dd")

또는 단순히

(Get-Date).ToString("yyyy:MM:dd")


-Format옵션 을 반드시 사용해야하는 경우이 작업을 수행하십시오 .

$dateStr = (Get-Date $date -Format "yyyMMdd")

하나

$dateStr = $date.toString('yyyMMdd')

아마 더 효율적입니다 .. :)


DOS에서 이것을 사용하려면 여기를 방문하십시오.

powershell -Command (Get-Date).ToString('yyyy-MM-dd')

HTTP 헤더에서 사용 하기 위해 현재 날짜를 형식화하려는 사람 은 "r"형식 (RFC1123의 약자)을 사용하지만주의해야합니다 ...

PS C:\Users\Me> (get-date).toString("r")
Thu, 16 May 2019 09:20:13 GMT
PS C:\Users\Me> get-date -format r
Thu, 16 May 2019 09:21:01 GMT
PS C:\Users\Me> (get-date).ToUniversalTime().toString("r")
Thu, 16 May 2019 16:21:37 GMT

즉 "ToUniversalTime ()"을 사용하는 것을 잊지 마십시오


매우 유익한 @stej에서 대답 여기지만, 짧은 대답 : 중 다른 옵션 , 당신은 3 개 간단한 옵션 형식을 [System.DateTime] 변수에 저장 :

  1. 변수를 Get-Date cmdlet에 전달합니다 .Get-Date -Format "HH:mm" $date

  2. 사용 toString () 메소드 :$date.ToString("HH:mm")

  3. 복합 형식 사용 :"{0:HH:mm}" -f $date


시간과 형식에 약간의 변화가 필요했습니다. 이것은 내 목적에 잘 작동합니다.

$((get-date).ToLocalTime()).ToString("yyyy-MM-dd HHmmss")

2019-08-16 215757

참고 URL : https://stackoverflow.com/questions/2249619/how-to-format-a-datetime-in-powershell

반응형