programing

DateTime.ParseExact (String, String, IFormatProvider)에 IFormatProvider가 필요한 이유는 무엇입니까?

copyandpastes 2021. 1. 15. 20:16
반응형

DateTime.ParseExact (String, String, IFormatProvider)에 IFormatProvider가 필요한 이유는 무엇입니까?


우리가 사용하는 경우 ParseExact에 방법 정확한 날짜 - 시간의 지정된 형식을 사용하여 분석을, 왜 우리는 IFormatProvider를 객체를 제공해야합니까? 그 뒤에 요점이 무엇입니까?

예를 들면 :

DateTime.ParseExact(dateString, format, provider);

provider여기 가 왜 필요한 가요?


IFormatProvider 개체를 제공해야하는 이유는 무엇입니까? 그 뒤에 요점이 무엇입니까?

문화 별 옵션을 허용합니다. 특히:

  • 사용하는 형식은 표준 날짜 / 시간 형식 일 수 있습니다. 이는 문화에 따라 다른 패턴을 의미합니다.
  • :또는 /패턴에서 사용할 수 있습니다 . 이는 각각 시간 구분 기호 또는 날짜 구분 기호에 대한 문화 별 문자를 의미합니다.
  • 월과 일 이름을 구문 분석 할 때 분명히 문화에 의존합니다.
  • 문화에 따라 결과에 영향을 미치는 기본 달력도 결정됩니다.

마지막 요점의 예로, 미국이나 사우디 아라비아의 문화에서 해석되는 동일한 정확한 문자열과 형식을 고려하십시오.

using System;
using System.Globalization;

class Test
{
    static void Main()        
    {
        CultureInfo us = new CultureInfo("en-US");
        CultureInfo sa = new CultureInfo("ar-SA");
        string text = "1434-09-23T15:16";
        string format = "yyyy'-'MM'-'dd'T'HH':'mm";
        Console.WriteLine(DateTime.ParseExact(text, format, us));
        Console.WriteLine(DateTime.ParseExact(text, format, sa));
    }
} 

미국 문화로 구문 분석 할 때 그레고리력이 사용되는 반면 사우디 아라비아 문화로 구문 분석 할 때는 Um Al Qura 달력이 사용됩니다. 여기서 1434는 현재 우리가있는 해입니다 (이 답변을 작성).

참조 URL : https://stackoverflow.com/questions/18961520/why-datetime-parseexactstring-string-iformatprovider-need-the-iformatprovide

반응형