이것은 여러 번 발생하는 문제이며 내가 누락 된 우아한 해결책이 있다고 확신합니다.C# 날짜 형식화
저는 C#에서 문자열로 보내지는 다양한 SQL 테이블/웹 사이트/웹 서비스에서 보내는 DateTime 변수가 있습니다. 문제는 이러한 출처 중 일부는 영어 (미국)로 설정되고 일부는 영어 (영국)로 설정된다는 것입니다. 나는 그들 모두를 하나의 문화 또는 다른 문화에 맞추기를 좋아하기 때문에 이들 중 일부를 통제 할 수는 없습니다.
지금까지 나는이 그것을 형식으로은 CultureInfo 개체를 사용하여 변환 된 올바르게 좋아 :
CultureInfo ci = new CultureInfo("en-GB");
Convert.ToDateTime(inputDateTimeString, ci);
그러나, 최근에 변환이 원래의 날짜 시간이 무엇인지 문화를 모르는 나에게 발생했습니다 (그것은 내가 말했듯이, 그것은 미국식이거나 영국인이 될 수 있습니다.) 그것은 단지 문자열이기 때문입니다.
날짜 문자열 (예 : "06/15/2009")의 경우 변환이 '15'가 해당 월이 될 수 없음을 인식하기 때문에 문제가되지 않습니다. 그러나 "06/07/2009"라는 날짜 문자열은 항상 유효하지만 원본이 미국인인지 영국인인지에 따라 다른 요일과 달을 나타낼 수 있습니다.
일반적으로 이러한 모호성을 줄이는 DateTime을 처리하는 더 나은 방법이 있습니까? 감사.
편집 : 내 정보가 제한되어 있으므로 올바른 형식으로 항상 변환 할 수있는 확실한 방법이없는 것 같습니다.
이러한 DateTime 문자열의 소스 중 하나는 제어 할 수없는 .dll입니다. 그러나이 .dll이 정보가 저장된 데이터베이스에 액세스하는 데 사용하는 SQL 로그인을 제어 할 수 있습니다. 이 로그인의 언어 설정을 영국 영어 (현재 미국 영어입니다)로 변경하려면 DateTime을 해당 형식으로 검색합니까, 그렇지 않습니까? 나는 그것이 다른 것을 망쳐 놓지 않았다는 것을 당연히 확인해야 할 것이다.
프로그래머에게 이것은 두통의 원인입니다 ... –
심지어 일 월 년은 때로는 고통입니다.년 월 일 시간 분 초가 가장 좋습니다 :) – MartW