문제

ASP.NET 앱을 작성했으며 포스트 백 루틴 중 하나는 단순히 사용자 제출 양식 데이터를 SQL 2005 DB에 저장합니다. 모두 내 개발 시스템에서 훌륭하게 실행되지만 라이브 사이트에 배포하면 구문 분석 날짜 검사기에서 잘못된 날짜가 발생합니다.

기본적으로 라이브 머신에서 미국 날짜 형식을 기대하지만 이것이 내가 원하는 것이 아닙니다. 사용자는 DD/MM/YYYY 형식으로 입력 할 수 있어야합니다. 2009 년 21/10/2009와 같은 유효한 날짜는 라이브 서버에서 오류를 반환하지만 내 DEV 시스템에서는 오류를 반환합니다. 아래는 예외를 던지는 코드입니다.

DateTime dt;
dt = DateTime.Parse(sdate);  
//sdate in GB dd/MM/yyyy format

구문 분석 루틴이 DD/MM/YYYY 형식의 날짜를 기대하도록 강요 할 수 있습니까?

도움이 되었습니까?

해결책

이것을 좋아합니다 :

    System.Globalization.CultureInfo cultureinfo = 
        new System.Globalization.CultureInfo("en-gb");
    DateTime dt = DateTime.Parse("13/12/2009", cultureinfo);

다른 팁

당신이 사용할 수있는 datetime.parseexact 예상 형식을 지정합니다.

또 다른 옵션은 Web.config 파일에서 사용하려는 문화를 지정하는 것입니다.

<system.web>
    ...
    <globalization 
        culture="da-DK" 
        uiCulture="da-DK" requestEncoding="utf-8" responseEncoding="utf-8"
    />
</system.web>

예, Parseexact는 Matt가 언급 한대로 그렇게 할 것입니다.

코드는 다음과 같습니다.

dt  = DateTime.ParseExact(sdate, "dd/MM/yyyy", CultureInfo.InvariantCulture);
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top