문자열에서 날짜 분석하기

PowerShell:
문자열에서 날짜 분석하기

어떻게:

PowerShell은 표준 날짜 형식에 잘 맞는 Get-Date cmdlet과 [datetime] 타입 액셀러레이터를 사용하여 문자열에서 날짜를 쉽게 파싱할 수 있습니다. 더 복잡하거나 비표준 날짜 문자열의 경우, 정확한 형식을 지정하기 위해 [datetime]::ParseExact 메소드를 사용할 수 있습니다.

Get-Date[datetime] 사용하기:

# Get-Date을 사용한 간단한 변환
$stringDate = "2023-04-01"
$date = Get-Date $stringDate
echo $date

샘플 출력:

Saturday, April 1, 2023 12:00:00 AM
# 타입 액셀러레이터 [datetime] 사용하기
$stringDate = "April 1, 2023"
$date = [datetime]$stringDate
echo $date

샘플 출력:

Saturday, April 1, 2023 12:00:00 AM

비표준 형식을 위한 [datetime]::ParseExact 사용하기:

자동으로 인식되지 않는 형식의 경우, 정확한 파싱을 보장하기 위해 정확한 형식을 정의할 수 있습니다.

$stringDate = "01-04-2023 14:00"
$format = "dd-MM-yyyy HH:mm"
$culture = [Globalization.CultureInfo]::InvariantCulture
$date = [datetime]::ParseExact($stringDate, $format, $culture)
echo $date

샘플 출력:

Saturday, April 1, 2023 2:00:00 PM

서드파티 라이브러리 활용하기

PowerShell 자체는 날짜 파싱에 매우 강력하지만, 매우 복잡한 시나리오나 추가 기능을 위해서는 NodaTime과 같은 .NET 라이브러리를 탐색할 수 있습니다. 그러나 많은 전형적인 사용 사례의 경우, PowerShell의 네이티브 기능으로 충분할 것입니다.

# 설명을 위해 NodaTime 사용, 프로젝트에 라이브러리를 추가해야 한다는 점을 유의하세요
# Install-Package NodaTime -Version 3.0.5
# NodaTime을 사용하여 날짜 파싱하기
[string]$stringDate = "2023-04-01T14:00:00Z"
[NodaTime.Instant]::FromDateTimeUtc([datetime]::UtcNow)
[NodaTime.LocalDate]$localDate = [NodaTime.LocalDate]::FromDateTime([datetime]::UtcNow)
echo $localDate

주의 사항: 위 코드는 개념적인 설명입니다. 실제로는 NodaTime이 프로젝트에 올바르게 추가되어 타입과 방법이 사용 가능한지 확인하세요.