2009-03-01 4 views
1

내 .Net .exe 파일을 읽고 sql DB에 정보를 저장하는 데 사용됩니다. dev 시스템에서 우리는 기본 설정과 미국 로케일의 파일을 가지고 있으며 정상적으로 작동하고있었습니다.개발 로캘과 다른 로캘로 응용 프로그램 배포

동일한 .exe를 사용하고 기본 설정과 파일이 영국 로케일 인 Prod 서버에 배포했습니다.

로컬 시스템의 형식 즉, 미국 MM/dd/yyyy 및 영국 dd/MM/yyyy의 형식으로 날짜를 구문 분석해야하는 Datetime.Parse를 사용했습니다.

그러나 영국 형식으로 날짜를 구문 분석하는 동안 누군가에게 나를 도와 줄 수 있습니까?

또한 dev 컴퓨터의 기본 설정을 영국으로 변경 한 다음 .exe를 컴파일하고 배포 할 때 이상한 점을 발견했습니다.

내가 왜 작동했는지 알려주실 수 있습니까?

+0

어떤 예외가 있는지 말씀해 주시면 도움이 될 것입니다. 그리고 한 줄 또는 2 개의 소스. –

답변

1

DateTime.Parse() 메서드에 iformatprovider (즉, System.Globalization.CultureInfo의 인스턴스)를 제공해야합니다. btw, 내가 TryParse를 사용하는 것이 좋습니다 또는 정확하게 당신의 datetime 문자열이 도착하는 방법을 알고 있다면 TryParseExact를 사용하면 훨씬 빠릅니다.

0

가장 좋은 해결책은 app.config에서 로캘을 지정하고 컴퓨터를 재정의하는 것입니다.

+0

영국 고객에게 가장 적합한 방법은 무엇입니까? 아마도 가장 쉽습니다. –

+0

음 ... 당신은 요점이 있습니다. Ups! –

0

자세한 내용은 알 수 없지만 응용 프로그램 서버 은 예상보다 다른 언어 설정으로 실행됩니다. 응용 프로그램 서버에서 culture 설정이 올바르더라도 SQL Server의 날짜 형식은 여전히 ​​예상대로는 아닙니다.