PowerShell에서 문자열을 datetime으로 변환
PowerShell을 사용하여 문자열을 날짜/시간으로 변환하려고 합니다.쉬울 거예요, 그렇죠?
CSV 가져오기에서 문자열을 가져오는 중이며 다음 형식으로 제공됩니다.Jul-16나는 그것을 내가 원하는 형식으로 만드는 여러 가지 방법을 시도했습니다.yyyy-MM-dd그리고 저는 현재 다음과 같은 곳에 있습니다.
$invoice = $object.'Invoice Month'
$invoice = "01-" + $invoice
$invoice = [datetime]::parseexact($invoice, 'yyyy-MM-dd', $null)
하지만 오류가 발생했습니다.
문자열이 올바른 날짜 시간으로 인식되지 않았습니다.
내가 뭘 빼놓았나요?
ParseExact는 당신이 나가고자 하는 형식이 아니라, 그것이 구문 분석할 것으로 예상되는 날짜의 형식을 알려줍니다.
$invoice = '01-Jul-16'
[datetime]::parseexact($invoice, 'dd-MMM-yy', $null)
날짜 문자열을 출력하려는 경우:
[datetime]::parseexact($invoice, 'dd-MMM-yy', $null).ToString('yyyy-MM-dd')
단순히 DateTime에 문자열을 캐스팅할 수 있습니다.
[DateTime]"2020-7-16"
또는
[DateTime]"Jul-16"
또는
$myDate = [DateTime]"Jul-16";
다음과 같은 작업을 수행하여 결과 DateTime 변수의 형식을 지정할 수 있습니다.
'{0:yyyy-MM-dd}' -f [DateTime]'Jul-16'
또는
([DateTime]"Jul-16").ToString('yyyy-MM-dd')
또는
$myDate = [DateTime]"Jul-16";
'{0:yyyy-MM-dd}' -f $myDate
구문 분석하려면 이미 있는 형식을 지정해야 합니다.
$InvoiceDate = [datetime]::ParseExact($invoice, "dd-MMM-yy", $null)
이제 필요한 형식으로 출력할 수 있습니다.
$InvoiceDate.ToString('yyyy-MM-dd')
또는
'{0:yyyy-MM-dd}' -f $InvoiceDate
크리스 덴츠의 대답은 이미 OP들의 질문을 다뤘지만, 이것이 구글에서 가장 많이 검색된 것이었습니다.PowerShell format string as date저는 다른 현악기의 예를 들어볼까 생각했습니다.
만약 나처럼, 당신은 이렇게 타임 스트링을 얻습니다.20190720170000.000000+000
주의해야 할 중요한 점은 사용해야 한다는 것입니다.ToUniversalTime()사용 시[System.Management.ManagementDateTimeConverter]그렇지 않으면 입력에 대한 오프셋 시간을 얻을 수 있습니다.
PS 코드
cls
Write-Host "This example is for the 24hr clock with HH"
Write-Host "ToUniversalTime() must be used when using [System.Management.ManagementDateTimeConverter]"
$my_date_24hr_time = "20190720170000.000000+000"
$date_format = "yyyy-MM-dd HH:mm"
[System.Management.ManagementDateTimeConverter]::ToDateTime($my_date_24hr_time).ToUniversalTime();
[System.Management.ManagementDateTimeConverter]::ToDateTime($my_date_24hr_time).ToUniversalTime().ToSTring($date_format)
[datetime]::ParseExact($my_date_24hr_time,"yyyyMMddHHmmss.000000+000",$null).ToSTring($date_format)
Write-Host
Write-Host "-----------------------------"
Write-Host
Write-Host "This example is for the am pm clock with hh"
Write-Host "Again, ToUniversalTime() must be used when using [System.Management.ManagementDateTimeConverter]"
Write-Host
$my_date_ampm_time = "20190720110000.000000+000"
[System.Management.ManagementDateTimeConverter]::ToDateTime($my_date_ampm_time).ToUniversalTime();
[System.Management.ManagementDateTimeConverter]::ToDateTime($my_date_ampm_time).ToUniversalTime().ToSTring($date_format)
[datetime]::ParseExact($my_date_ampm_time,"yyyyMMddhhmmss.000000+000",$null).ToSTring($date_format)
산출량
This example is for the 24hr clock with HH
ToUniversalTime() must be used when using [System.Management.ManagementDateTimeConverter]
20 July 2019 17:00:00
2019-07-20 17:00
2019-07-20 17:00
-----------------------------
This example is for the am pm clock with hh
Again, ToUniversalTime() must be used when using [System.Management.ManagementDateTimeConverter]
20 July 2019 11:00:00
2019-07-20 11:00
2019-07-20 11:00
MS 문서[Management.ManagementDateTimeConverter]:
$invoice = "Jul-16"
[datetime]$newInvoice = "01-" + $invoice
$newInvoice.ToString("yyyy-MM-dd")
여기 있습니다. 유형 가속기를 사용하는 동시에 새로운 변수에도 사용할 수 있습니다. 다른 곳에서 사용하려면 다음과 같이 사용하십시오.$newInvoice.ToString("yyyy-MM-dd")~하듯이$newInvoice나중에 문자열로 캐스팅하지 않는 한 항상 datetime 형식이지만 datetime 함수를 수행할 수 있는 기능이 손실됩니다(일 추가 등).
아래에 도움이 되길 바랍니다!
PS C:\Users\aameer>$invoice = $object.'Invoice Month'
$invoice = "01-" + $invoice
[datetime]$Format_date =$invoice
이제 유형이 변환되었습니다.메소드를 사용하거나 모든 속성에 액세스할 수 있습니다.
Example :$Format_date.AddDays(5)
매우 쉽습니다. 저의 경우에는 작동합니다.
입력:
$Date = '29-07-2022'
날짜 형식 변환:
[datetime]::parseexact($date, 'dd-MM-yyyy', $null).ToString('dd-MMMM-yyyy')
출력:
숫자(초)를 일/시간/초 등으로 변환해야 했지만 관련 요구 사항이 있었습니다.
$seconds = 41414141
New-Timespan -seconds $seconds
언급URL : https://stackoverflow.com/questions/38717490/convert-a-string-to-datetime-in-powershell
'sourcecode' 카테고리의 다른 글
| ADODB.Command: 준비된 문이 예상 레코드 수를 반환하지 않습니다. (0) | 2023.07.28 |
|---|---|
| Angular App의 구문 오류: 예기치 않은 토큰 < (0) | 2023.07.28 |
| HTML 양식 데이터를 JSON으로 서버에 보내는 방법은 무엇입니까? (0) | 2023.07.28 |
| @Test 컨테이너가 있는 Mongo 드라이버, 테스트가 성공적으로 실행된 후 예외 발생 (0) | 2023.07.28 |
| 리소스 및 컨트롤러 링크 작성기를 찾을 수 없으며 더 이상 사용되지 않습니다. (0) | 2023.07.23 |

