문자열에서 날짜 분석하기

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

방법:

기본 파싱:

문자열을 DateTime으로 변환하기 위한 주요 선택지는 DateTime.ParseDateTime.TryParse 메서드입니다. 다음은 간단한 예시입니다:

string dateString = "2023-04-12";
DateTime parsedDate;

if (DateTime.TryParse(dateString, out parsedDate))
{
    Console.WriteLine($"성공적으로 파싱됨: {parsedDate}");
}
else
{
    Console.WriteLine("파싱 실패.");
}
// 출력: 성공적으로 파싱됨: 2023년 4월 12일 오전 12:00:00

문화권 지정:

특정 문화권 형식의 날짜 문자열을 파싱해야 할 때가 있습니다. 이를 위해 CultureInfo 클래스를 사용할 수 있습니다:

using System.Globalization;

string dateString = "12 avril 2023";
var cultureInfo = new CultureInfo("fr-FR");
DateTime parsedDate = DateTime.Parse(dateString, cultureInfo);

Console.WriteLine(parsedDate);
// 출력: 2023년 4월 12일 오전 12:00:00

특정 형식으로 정확한 파싱:

표준이 아닐 수 있는 특정 형식으로 날짜가 제공되는 시나리오의 경우, DateTime.ParseExact가 유용합니다:

string dateString = "Wednesday, 12 April 2023";
string format = "dddd, d MMMM yyyy";
DateTime parsedDate = DateTime.ParseExact(dateString, format, CultureInfo.InvariantCulture);

Console.WriteLine(parsedDate);
// 출력: 2023년 4월 12일 오전 12:00:00

NodaTime 사용하기:

더 강력한 날짜 및 시간 파싱을 위해, 인기 있는 타사 라이브러리인 NodaTime을 고려해 보세요. NodaTime은 더 넓은 범위의 날짜/시간 처리 기능을 제공합니다:

using NodaTime;
using NodaTime.Text;

var pattern = LocalDatePattern.CreateWithInvariantCulture("yyyy-MM-dd");
var parseResult = pattern.Parse("2023-04-12");

if (parseResult.Success)
{
    LocalDate localDate = parseResult.Value;
    Console.WriteLine(localDate); // 2023-04-12
}
else
{
    Console.WriteLine("파싱 실패.");
}

NodaTime은 시간대, 기간 및 지속성 개념, 다양한 달력 시스템에 대한 광범위한 지원을 제공하며, .NET 애플리케이션에서 복잡한 날짜 및 시간 조작을 위한 강력한 선택입니다.