PowerShell에서 ParseExact로 날짜 및 시간 파싱하는 방법

날짜를 PowerShell에서 다룰 때, 날짜 문자열을 DateTime
객체로 변환해야 하는 경우가 있습니다. 날짜 문자열만으로는 DateTime
작업을 수행할 수 없으며, DateTime
객체가 필요합니다.
이 변환은 중요합니다. 왜냐하면 날짜 문자열만으로는 DateTime
작업을 수행하기에 충분하지 않기 때문입니다. 우리의 튜토리얼은 PowerShell에서 문자열을 DateTime
형식으로 파싱하고 변환하는 방법에 대한 포괄적인 안내를 제공하여 이 간극을 메우기 위해 설계되었습니다.
PowerShell에서 DateTime
을 파싱하기 위한 ParseExact
메서드 사용
DateTime
클래스의 ParseExact
메서드는 날짜 및 시간 문자열을 DateTime
형식으로 변환합니다. 날짜 및 시간 문자열 패턴의 형식은 DateTime
객체의 지정된 형식과 일치해야 합니다.
ParseExact
의 구문은 다음과 같습니다:
[datetime]::ParseExact(string, format, provider)
매개변수:
string
: 변환할 문자열 형식의 날짜 및 시간입니다.format
: 문자열의 예상 형식을 정의하는 정확한 형식 지정자입니다.provider
: 문화별 서식 정보를 제공하는 객체입니다. 현재 문화 사용 시null
일 수 있습니다.
간단한 날짜 파싱
아래 예제는 ParseExact
메서드를 사용하여 날짜 문자열을 DateTime
객체로 변환합니다.
$dateString = '24-Jan-2024'
$format = 'dd-MMM-yyyy'
$culture = $null # Using the current culture
# Parsing the date
$parsedDate = [datetime]::ParseExact($dateString, $format, $culture)
# Displaying the result
Write-Host "Parsed Date: $parsedDate"
이 코드에서는 먼저 24-Jan-2024
라는 날짜 문자열을 정의합니다. 이는 일-월-년 형식의 날짜를 나타내며, 나쁜 월 이름이 축약되어 있습니다. 우리는 dd-MMM-yyyy
형식 지정자로 이 형식을 지정합니다.
$culture
변수는 $null
로 설정되어 있어, PowerShell에 시스템의 현재 문화 설정을 사용하여 날짜를 파싱하도록 지시합니다.
핵심 기능은 [datetime]::ParseExact($dateString, $format, $culture)
로, 이는 우리가 지정한 $format
에 따라 $dateString
을 파싱합니다. 파싱 후, 문자열은 DateTime
객체로 변환되며, 우리는 이를 $parsedDate
변수에 저장합니다.
마지막으로, 우리는 Write-Host
를 사용하여 파싱된 날짜를 표시합니다. 이것은 실제 시나리오에서 ParseExact
를 사용하는 간단하면서도 효과적인 시연입니다.
출력:
이 출력은 문자열에서 생성된 DateTime
객체를 보여주며, 입력 문자열에 시간을 지정하지 않았으므로 기본적으로 자정(00:00:00
)으로 설정됩니다.
특정 문화 사용
ParseExact
와 함께 특정 문화를 사용하는 것은 현재 시스템 설정과 다른 문화의 관례에 따라 형식화된 날짜 문자열을 처리할 때 필수적입니다. 이 접근 방식은 MM/dd/yyyy
및 dd/MM/yyyy
형식에서 월과 일을 혼동하는 등의 오해를 방지합니다.
간단한 예는 다음과 같습니다:
$dateString = '23/01/2024'
$format = 'dd/MM/yyyy'
$culture = [Globalization.CultureInfo]::CreateSpecificCulture('fr-FR')
# Parsing the date
$parsedDate = [datetime]::ParseExact($dateString, $format, $culture)
# Displaying the result
Write-Host "Parsed Date: $parsedDate"
이 코드 조각에서 우리는 프랑스 날짜 형식인 dd/MM/yyyy
에 따라 날짜 문자열을 파싱하는 것을 목표로 합니다. 우리는 먼저 날짜 문자열 23/01/2024
를 정의합니다.
형식 dd/MM/yyyy
는 쉽게 미국에서 사용하는 MM/dd/yyyy
형식과 혼동될 수 있습니다. 1월 23일로 올바르게 해석하기 위해 프랑스 문화 ('fr-FR')
를 지정합니다.
$culture
변수는 [Globalization.CultureInfo]::CreateSpecificCulture('fr-FR')
를 사용하여 초기화되어, 파싱 작업을 위한 문화적 맥락을 준비합니다. 그 후, [datetime]::ParseExact($dateString, $format, $culture)
를 호출하여 날짜 문자열을 파싱합니다.
마지막으로, 우리는 Write-Host
를 사용하여 파싱된 날짜를 표시합니다. 이는 입력 문자열이 특정 문화의 맥락에서 올바르게 해석되는 방식을 보여줍니다.
출력:
이 출력은 프랑스 문화의 맥락에서 날짜 문자열을 성공적으로 파싱한 것을 보여줍니다. 날짜는 2024년 1월 23일로 올바르게 이해되며, 서로 다른 월-일 순서로 인해 잘못 해석되지 않습니다.
시간과 함께 파싱
PowerShell에서 날짜와 시간을 효율적으로 처리하는 것은 중요한 기술입니다. 특히 날짜와 시간 구성 요소 모두를 포함하는 문자열을 파싱할 때 더욱 그렇습니다. DateTime
클래스의 ParseExact
메서드는 이러한 문자열을 해석하는 데 능숙하며, 형식이 정확하게 지정된 경우에 제공됩니다.
날짜와 시간이 모두 포함된 datetime 문자열을 파싱해 보겠습니다:
$dateTimeString = '2024-01-23 14:30'
$format = 'yyyy-MM-dd HH:mm'
$provider = $null # Opting for the invariant culture
# Parsing the datetime
$parsedDateTime = [datetime]::ParseExact($dateTimeString, $format, $provider)
# Displaying the result
Write-Host "Parsed DateTime: $parsedDateTime"
우리의 예에서는 국제 표준(년-월-일 및 24시간제)으로 형식화된 2024-01-23 14:30
라는 datetime 문자열을 다룹니다. 우리는 이 구조에 맞게 $format
을 yyyy-MM-dd HH:mm
으로 신중하게 설정합니다.
우리는 $provider
에 $null
을 선택하여 불변 문화 사용을 의미합니다. 이는 datetime 형식이 표준이며 문화적으로 의존적이지 않을 때 일반적인 접근 방식입니다.
핵심 순간은 [datetime]::ParseExact($dateTimeString, $format, $provider)
를 실행하여 문자열을 DateTime
객체로 변환하는 것으로, 이 객체는 문자열의 날짜와 시간을 모두 포함합니다.
출력:
이 결과는 입력 문자열이 DateTime
객체로 정확하게 파싱되어 날짜와 시간 구성 요소를 포착했다는 것을 효과적으로 보여줍니다.
PowerShell에서 DateTime
을 파싱하기 위한 명시적 형 변환 사용
날짜와 시간의 문자열을 PowerShell에서 DateTime
형식으로 캐스팅할 수도 있습니다.
이 구문을 사용하여 문자열을 DateTime
객체로 캐스팅할 수 있습니다.
[DateTime]string
다음 예제는 캐스트 표현식을 사용하여 날짜와 시간의 문자열 표현을 DateTime
객체로 변환합니다.
$strDate = "2022-06-11 09:22:40"
[DateTime]$strDate
우리의 PowerShell 코드 조각에서는 문자열 "2022-06-11 09:22:40"
를 변수 $strDate
에 할당합니다. 이 문자열은 표준 형식의 날짜와 시간을 나타냅니다.
그 후, [DateTime]$strDate
를 사용하여 DateTime
객체로의 형 변환을 수행합니다.
출력:
DateTime
객체를 사용하면 모든 DateTime
작업을 수행할 수 있어야 합니다. 이 튜토리얼이 PowerShell에서 문자열을 DateTime
형식으로 변환하는 방법을 이해하는 데 도움이 되기를 바랍니다.
결론
이 튜토리얼을 통해 우리는 PowerShell에서 DateTime
변환의 다양한 기능을 탐구했습니다. 특히 ParseExact
메서드와 이 메서드의 문자열을 DateTime
객체로 파싱하는 유연성에 주목했습니다. 우리는 간단한 날짜 형식을 처리하고 특정 문화적 맥락을 포함하며 날짜와 시간 구성 요소가 있는 문자열을 파싱하는 방법을 입증했습니다.
또한 명시적 형 변환이라는 직관적이면서도 효과적인 기술도 다루어 표준 날짜 형식에 대한 간단한 방법을 제공했습니다. 우리의 예시는 PowerShell 스크립트에서 정확하고 효율적인 날짜-시간 조작을 보장하기 위한 다양한 파싱 방법을 이해하고 올바로 적용하는 것이 얼마나 중요한지를 보여주었습니다.