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 |