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

  1. PowerShell에서 DateTime을 파싱하기 위한 ParseExact 메서드 사용
  2. PowerShell에서 DateTime을 파싱하기 위한 명시적 형 변환 사용
  3. 결론
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를 사용하는 간단하면서도 효과적인 시연입니다.

출력:

파워셸 날짜 시간 parseexact - 출력 1

이 출력은 문자열에서 생성된 DateTime 객체를 보여주며, 입력 문자열에 시간을 지정하지 않았으므로 기본적으로 자정(00:00:00)으로 설정됩니다.

특정 문화 사용

ParseExact와 함께 특정 문화를 사용하는 것은 현재 시스템 설정과 다른 문화의 관례에 따라 형식화된 날짜 문자열을 처리할 때 필수적입니다. 이 접근 방식은 MM/dd/yyyydd/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를 사용하여 파싱된 날짜를 표시합니다. 이는 입력 문자열이 특정 문화의 맥락에서 올바르게 해석되는 방식을 보여줍니다.

출력:

파워셸 날짜 시간 ParseExact - 출력 2

이 출력은 프랑스 문화의 맥락에서 날짜 문자열을 성공적으로 파싱한 것을 보여줍니다. 날짜는 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 문자열을 다룹니다. 우리는 이 구조에 맞게 $formatyyyy-MM-dd HH:mm으로 신중하게 설정합니다.

우리는 $provider$null을 선택하여 불변 문화 사용을 의미합니다. 이는 datetime 형식이 표준이며 문화적으로 의존적이지 않을 때 일반적인 접근 방식입니다.

핵심 순간은 [datetime]::ParseExact($dateTimeString, $format, $provider)를 실행하여 문자열을 DateTime 객체로 변환하는 것으로, 이 객체는 문자열의 날짜와 시간을 모두 포함합니다.

출력:

powershell 날짜 시간 parseexact - 출력 3

이 결과는 입력 문자열이 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 객체로의 형 변환을 수행합니다.

출력:

powershell 날짜시간 parseexact - 출력 4

DateTime 객체를 사용하면 모든 DateTime 작업을 수행할 수 있어야 합니다. 이 튜토리얼이 PowerShell에서 문자열을 DateTime 형식으로 변환하는 방법을 이해하는 데 도움이 되기를 바랍니다.

결론

이 튜토리얼을 통해 우리는 PowerShell에서 DateTime 변환의 다양한 기능을 탐구했습니다. 특히 ParseExact 메서드와 이 메서드의 문자열을 DateTime 객체로 파싱하는 유연성에 주목했습니다. 우리는 간단한 날짜 형식을 처리하고 특정 문화적 맥락을 포함하며 날짜와 시간 구성 요소가 있는 문자열을 파싱하는 방법을 입증했습니다.

또한 명시적 형 변환이라는 직관적이면서도 효과적인 기술도 다루어 표준 날짜 형식에 대한 간단한 방법을 제공했습니다. 우리의 예시는 PowerShell 스크립트에서 정확하고 효율적인 날짜-시간 조작을 보장하기 위한 다양한 파싱 방법을 이해하고 올바로 적용하는 것이 얼마나 중요한지를 보여주었습니다.

튜토리얼이 마음에 드시나요? DelftStack을 구독하세요 YouTube에서 저희가 더 많은 고품질 비디오 가이드를 제작할 수 있도록 지원해주세요. 구독하다
Rohan Timalsina avatar Rohan Timalsina avatar

Rohan is a learner, problem solver, and web developer. He loves to write and share his understanding.

LinkedIn Website

관련 문장 - PowerShell DateTime