C#에서 정확한 날짜를 구문 분석한다고 해서 IFormatProvider를 생성해야 하는 것은 아닙니다.

StackOverflow https://stackoverflow.com/questions/64640

문제

내가 틀렸다면 누군가 정정해 주세요. 하지만 C#에서 yyyy/MM/dd(또는 기타 특정 형식) 날짜를 구문 분석합니다. ~해야 한다 최대한 쉽게

DateTime.ParseExact(theDate, "yyyy/MM/dd");

하지만 아니요, C#에서는 IFormatProvider를 생성해야 합니다.

매번 이 작업을 수행할 필요가 없도록 이를 설정하는 app.config 친화적인 방법이 있습니까?

DateTime.ParseExact(theDate, "yyyy/MM/dd", new CultureInfo("en-CA", true));
도움이 되었습니까?

해결책

IFormatProvider 인수는 null일 수 있습니다.

다른 팁

ParseExact에는 문화가 필요합니다."yyyy MMM dd"를 고려하세요.MMM은 현재 문화권을 사용하는 지역화된 월 이름입니다.

현재 애플리케이션 문화를 사용하십시오.

DateTime.ParseExact("2008/12/05", "yyyy/MM/dd", System.Globalization.CultureInfo.CurrentCulture);

세계화 태그를 사용하여 app.config에서 애플리케이션 문화를 설정할 수 있습니다.제 생각에는.

확장 방법을 만듭니다.

public static DateTime ParseExactDateTime(this string dateString, string formatString) {
    return DateTime.ParseExact(dateString, formatString, new CultureInfo("en-CA", true));
}

특정 날짜 및 시간 기호와 문자열(예: 특정 언어의 요일 이름)을 결정하려면 형식 공급자가 필요합니다.null을 사용할 수 있으며, 이 경우 현재 문화권에 해당하는 CultureInfo 개체가 사용됩니다.

매번 지정할 필요가 없으면 형식 공급자로 null 또는 CultureInfo("en-CA", true)를 전달하는 확장 메서드를 만듭니다.

IFormatProvider를 한 번 생성하고 나중에 사용하기 위해 저장할 수도 있습니다.

Convert 클래스를 사용할 수도 있습니다.

Convert.ToDateTime("2008/11/25");

//날짜를 MySql 호환 형식으로 변환

DateTime DateValue = Convert.ToDateTime(datetimepicker.text);

string datevalue = DateValue.ToString("yyyy-MM-dd");

Globalization.CultureInfo.InvariantCulture를 사용할 때 어떤 문제가 있나요?

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top