2016-10-19 2 views
0

입력 날짜가 "30.03.2016"(즉, 가정으로 가정 할 때 임의의 언어 형식 일 수 있음)이지만 현재 문화권은 미국이라고 가정합니다. 입력을 Windows 로케일 설정 문화권으로 변환하고 싶습니다. 변환을 위해 아래의 형식을 사용하고 있지만 잘못된 datetime을 제공합니다.날짜 문자열을 현재 culture 날짜 형식으로 변환

var myDateTimeValue = "30.03.2015"; 
DateTime myDateTime = DateTime.Parse(myDateTimeValue); 
var dateingddmmyy = myDateTime.ToString(new CultureInfo("sv-SE")); 
Console.Write(dateingddmmyy); 

어떤 유형의 날짜 문자열을 현재 문화권 형식으로 변환 할 수 있습니까?

+3

"모든 언어 형식은"문제가있다. "05/06/2016"은 6 월 5 일 (영국 형식) 또는 5 월 6 일 (미국 형식)이어야합니까? –

+0

코드가 내 PC에서 잘 돌아갑니다. –

+0

@JonSkeet 내 요구 사항 "모든 언어 형식"은 변환 할 수 있습니까? – stylishCoder

답변

1

소스 날짜가 될 수 아무것도 같은 :

  • DD-MM-YYYY
  • 일/월/년,
  • mm-DD-YYYY,
  • mm/DD/YYYY
  • YYYY-MM-DD

난 당신이 다시 단계를 가지고 좀 더 세부 사항을 해결하기 위해 시도하고있는 무슨 탐구 좋습니다. 어쩌면 어떤 데이터 형식에서 변환 할 필요가 없을 수도 있습니다. 아마도 그런 형식을 제공 할 수있는 방법 일 것입니다. 난 내 문제를 해결 한 아래

+0

Thanks @ David Rutkowski 방금 내 응답 게시 – stylishCoder

0

:

string[] formats = {"M/d/yyyy", "MM/dd/yyyy", 
           "d/M/yyyy", "dd/MM/yyyy", 
           "yyyy/M/d", "yyyy/MM/dd", 
           "M-d-yyyy", "MM-dd-yyyy", 
           "d-M-yyyy", "dd-MM-yyyy", 
           "yyyy-M-d", "yyyy-MM-dd", 
           "M.d.yyyy", "MM.dd.yyyy", 
           "d.M.yyyy", "dd.MM.yyyy", 
           "yyyy.M.d", "yyyy.MM.dd", 
           "M,d,yyyy", "MM,dd,yyyy", 
           "d,M,yyyy", "dd,MM,yyyy", 
           "yyyy,M,d", "yyyy,MM,dd", 
           "M d yyyy", "MM dd yyyy", 
           "d M yyyy", "dd MM yyyy", 
           "yyyy M d", "yyyy MM dd" 
           }; 
       DateTime dateValue; 

        foreach (string dateStringFormat in formats) 
        { 
         if (DateTime.TryParseExact(strDateTime, dateStringFormat,CultureInfo.CurrentCulture,DateTimeStyles.None, 
                out dateValue)) 
         { 
          return dateValue.ToShortDateString(); 
         } 
        } 
+0

형식 배열에없는 사용자 지정 날짜 형식을 사용하는 사람은 무엇입니까? –

+0

유일한 해결책은 배열 first..i에 형식을 추가해야한다는 것입니다. 그래서 위의 솔루션 중 하나의 대안이라고 생각하지 마십시오. 사용자가 날짜를 입력하면 형식이 배열로 지정되어 캐스팅이 완료되어야합니다. 저 기초. .. @DawidRutkowski .. 당신이 가장 환영하는 무엇이든을 더 제안하는 경우에. ... – stylishCoder

+0

왜 사용자가 날짜를 타자를 치기 위하여 가정되는 분야에 단순히 검증을 추가하지 않기 위하여? 그런 다음 날짜가 항상 같은 형식이어야합니다. –

관련 문제