PowerShell에서 DateTime을 포맷하는 방법
다음과 같은 문제 없이 cmdlet을 포맷할 수 있습니다.
$date = Get-Date -format "yyyyMMdd"
그러나 변수에 날짜가 지정되면 어떻게 형식을 지정해야 합니까?아래의 진술서
$dateStr = $date -format "yyyMMdd"
다음 오류를 반환합니다.
"'-f' 연산자의 오른쪽에 값 식을 입력해야 합니다."
당신이 하는 것과 같습니다.NET:
$DateStr = $Date.ToString("yyyyMMdd")
또는:
$DateStr = '{0:yyyyMMdd}' -f $Date
간단하고 좋은 방법은 다음과 같습니다.
$time = (Get-Date).ToString("yyyy:MM:dd")
질문에 답변했지만 누락된 정보가 있습니다.
변수 대.cmdlet
당신은 가치가 있습니다.$Date
변수와-f
연산자는 다음과 같은 형식으로 작동합니다.'format string' -f values
전화하시면Get-Date -format "yyyyMMdd"
일부 매개 변수를 사용하여 cmdlet을 호출합니다.값 "yyyyMMDD"는 매개 변수에 대한 값입니다.Format
(노력)help Get-Date -param Format
).
-f
교환입니다.
많은 형식 문자열이 있습니다.적어도 파트 1과 파트 2를 보세요.그녀는 사용합니다.string.Format('format string', values')
라고 생각합니다.'format-string' -f values
왜냐하면-f
연산자는 다음과 매우 유사하게 작동합니다.string.Format
method (몇 가지 차이점이 있지만, 자세한 내용은 Stack Overflow의 질문을 참조하십시오.PowerShell의 -f 연산자의 RHS는 정확히 어떻게 작동합니까?)
매우 편리하지만 아마도 너무 효율적이지는 않은 해결책은 회원 기능을 사용하는 것입니다.
$d = Get-Date
$d.GetDateTimeFormats()
그러면 날짜 값에 대한 형식 지정 스타일의 큰 문자열 배열이 출력됩니다.그런 다음 다음 다음을 통해 배열의 요소 중 하나를 선택할 수 있습니다.[]
-예:
PS C:\> $d.GetDateTimeFormats()[12]
Dienstag, 29. November 2016 19.14
한 가지 방법은 다음과 같습니다.
$date.ToString("yyyyMMdd")
꼭 사용해야 하는 경우 이 작업을 수행합니다.-Format
옵션:
$dateStr = Get-Date $date -Format "yyyMMdd"
하지만
$dateStr = $date.toString('yyyMMdd')
아마도 더 효율적일 것입니다.:)
만약 당신이 이것을 사용하기 위해 여기에 왔다면.cmd.exe
(배치 파일):
powershell -Command (Get-Date).ToString('yyyy-MM-dd')
@stej의 매우 유익한 답변이지만, 여기 짧은 답변이 있습니다: 다른 옵션 중에서 [시스템]을 포맷할 수 있는 3가지 간단한 옵션이 있습니다.DateTime]이(가) 변수에 저장됩니다.
Get-Date cmdlet에 변수를 전달합니다.
Get-Date -Format "HH:mm" $date
toString() 메서드 사용:
$date.ToString("HH:mm")
복합 형식 사용:
"{0:HH:mm}" -f $date
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
즉, "To Universal Time()"을 사용하는 것을 잊지 마십시오.
저는 시간과 약간의 형식 변화가 필요했습니다.이는 제 목적에 매우 적합합니다.
$((get-date).ToLocalTime()).ToString("yyyy-MM-dd HHmmss")
2019-08-16 215757
@mklement0 의견에 따르면, 이는 동일한 결과를 산출해야 합니다.
(get-date).ToString("yyyy-MM-dd HHmmss")
출력 필요에 따라 날짜 시간 형식 지정
날짜를 형식화하고 문자열을 변수에 할당하려는 경우.PowerShell과 를 모두 결합했습니다.유연성을 제공하는 NET.
$oDate = '{0}' -f ([system.string]::format('{0:yyyyMMddHHmmss}',(Get-Date)))
작동 방식
- PowerShell 연산자 - '{0}' -f(...)
- .NET 표기법 - [system.string]::format('사용자 정의 형식',InputObject)
- PowerShell을 와 결합하여 사용자 정의된 포맷.NET - '{0:yyyyy''MMddHHmmss}'
- PowerShell cmdlet에서 제공하는 입력 개체 - (Get-Date)
- PowerShell 변수에 저장됨 - $oDate
예
실행 날짜 및 시간이 월요일인 경우 2021년 7월 5일 오후 5:45:22(포맷 '{0:F})"
- $oDate = 20210705174522
코드 사용
'yyyy'를 수정하여 요구 사항에 맞게 문자열을 사용자 지정할 수 있습니다.Microsoft를 사용하는 MMddHHmmss'입니다.NET 사용자 지정 날짜 시간 표기법.
원하는 형식을 선택한 다음 필요한 곳에 붙여넣을 수 있습니다.
$DTFormats = (Get-Date).GetDateTimeFormats()
$Formats = @()
$i=0
While ($i -lt $DTFormats.Count){
$row = [PSCustomObject]@{
'IndexNumber' = $i
'DateTime Format' = $DTFormats[$i]
}
$Formats += $row
$i++
}
$DTSelection = ($Formats | Out-GridView -OutputMode Single -Title 'Select DateTime Format').IndexNumber
$MyDTFormat = "(Get-Date).GetDateTimeFormats()[$DTSelection]"
Write-Host " "
Write-Host " Use the following code snippet to get the DateTime format you selected:"
Write-Host " $MyDTFormat" -ForegroundColor Green
Write-Host " "
$MyDTFormat | Clip
Write-Host " The code snippet has been copied to your clipboard. Paste snippet where needed."
dueDate 문자열을 날짜 시간으로 변환한 다음 형식을 지정했습니다.
[Datetime]::ParseExact($dueDate,'MM/dd/yyyy H:mm:ss',$null).ToString('MM/dd/yyyy')
언급URL : https://stackoverflow.com/questions/2249619/how-to-format-a-datetime-in-powershell
'programing' 카테고리의 다른 글
지정된 문화 또는 중립 문화에 적합한 리소스를 찾을 수 없습니다. (0) | 2023.04.26 |
---|---|
Visual Studio 2015 추가 디버그 옵션 사용 안 함 (0) | 2023.04.26 |
번들 및 축소된 파일을 Windows Azure CDN에 업로드하는 방법 (0) | 2023.04.26 |
Linkq에서 문자열을 엔티티로 변환하는 데 문제가 있습니다. (0) | 2023.04.26 |
Excel을 데이터 테이블로 신속하게 가져오기 (0) | 2023.04.26 |