2012-02-09 4 views
2

날짜/시간을 변환하는 방법을 알아내는 가장 좋은 방법은 무엇입니까? dd/mm/yyyy 아직 내가 mm/dd/yyy으로 날짜를 복용하고 나는이다른 문화권의 DateTime 변환

DateTime.Convert(); 
DateTime.Parse(); 
DateTime.TryParse(); 

을하려고 내가 하나가 아무것도 다시 얻을하거나 충돌 그래서 때 는 지금 내 컴퓨터는 설정입니다. 이제는 mm/dd/yyyy 형식에 대해 말할 수 있으며 아마도 변환 될 것입니다. 그러나 문제는이 날짜가 사용자가 업로드 한 파일에서 오는 것입니다.

모든 형식 조합이 가능합니다. 나는 그것을 할 길을 찾고있다.

내가보기에 문제는 브라우저의 날짜 형식이 도움이 될지 모르겠다 고 말하면 업로드 된 파일의 날짜를보고 있다는 것입니다.

asp.net mvc를 사용하고 있으며 날짜 형식을 자동으로 처리하는 솔루션을 얻으려고하므로 날짜 형식에 대해 사용자에게 묻지 않아도됩니다. 사용자가 계속 사용할 가능성이 적음)

+3

4 월 2 일 또는 2 월 4 일에 '02/04/2012'가 또 있습니까? – dtb

+0

chobs - 당신은 '로케일 문화를 찾아서 그것을 기반으로 한 작업을 할 수있었습니다!' 아니?? (예 : http://stackoverflow.com/questions/2288383/where-is-the-system-locale-culture-set-for-net 참조) –

답변

1

아니요, 값이 서버에있는 경우 사용자가 사용하려고했던 날짜/시간 형식을 자동으로 알아낼 수 없습니다. 정확하게 구문 분석하려면 더 많은 정보가 필요합니다 (예 : 1/2/3은 문화에 따라 많은 다른 날짜를 의미 할 수 있음). 당신이 그것을 보내기 전에 클라이언트에서 자바 스크립트를 사용하여 - (2012-02-09 8601 즉, ISO에게) 표준 형식의 텍스트 표현으로 입력 된 날짜를 변환

  1. :

    다음 방법 중 하나를 고려 서버. 코드는 다음과 같습니다 : d.getUTCFullYear()+"-" + d.getUTCMonth() + "-" + d.getUTCDate().

  2. 변환 할 날짜 값과 함께 로컬 culture 정보를 서버에 보내고 서버에서 변환을 수행하십시오.
  3. 사용자가 특정 형식으로 날짜를 입력하도록하십시오 (예 : 무료 입력이 가능한 텍스트 상자 대신 "월", "일"및 "연도"라는 3 개의 텍스트 상자 사용).
+0

댕 (Dang)은 자신들이 그것을 이해하기위한 몇 가지 훌륭한 방법 이었으면 좋겠다. 사용자가 가능한 한 적게한다면 훨씬 더 좋습니다. – chobo2

+0

@ chobo2 사용자가 직접 변환을 수행 할 필요는 없습니다. 사용자가 웹 브라우저를 통해 앱을 치는 경우 서버로 보내기 전에 일부 자바 스크립트로 변환하십시오. '1/2/3'을 입력 할 때 사용자가 무엇을 의미하는지 알 수있는 유일한 장소는 브라우저에 있습니다. 이것은 값이 서버에 도착하기 전에 수행해야하는 변환입니다. [ISO 8601] (http://en.wikipedia.org/wiki/ISO_8601)은 로컬 DateTime 표현을 일반적인 값으로 변경하는 것을 처리 할 때 귀하의 친구입니다. Alexei는 문제를 해결할 수있는 유일한 방법을 제시했습니다. –

1

chobo2 (필자는 '손잡이'를 좋아하는) :

로켈 문화를 감지하고 의지에서 그 작업을 할 수 있습니다. 포인터의 SO 다음 Q/A를 참조하십시오

Where is the system locale/culture set for .Net

키가 특히 아무것도 설정해야하지만, 로케일을 파악하고 그에 따라 행동하지 않는 것입니다.

+0

그냥 서버 문화를 알려주지 않겠습니까? – chobo2

+0

실제로, 맞습니다. 내가 이전에 '오래된 삶'에서 내 마스터 템플릿에서 로케일을 발견하는 자바 스크립트 함수를 보냈습니다. 그러나 이것은 자바 스크립트에 높은 의존성이 활성화되어 있으므로 부분적으로 만 사용자의 요구를 충족시킬 수 있습니다. (요즘은 아마 75 % 이상이 될 것입니다. 그러나이 접근 방식을 몇 년 전에 생각하면 가정은 25 % js 범위였습니다. 슬림 옵션). 세션 및 js 기능의 콤보를 조사하여이 기능을 종료하십시오. –