[datetime] 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")


답변

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

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

하나

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

아마 더 효율적입니다 .. 🙂


답변

이것을 cmd.exe배치 파일 로 사용하려면 여기에 오십시오.

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