나는 이런 식으로 밀리 초를 포함하는 문자열을 구문 분석하려고 해요 :밀리 초가 포함 된 DateTime 구문 분석은 특정 문화권에서는 실패합니다. 왜?
string s = "11.05.2010 15:03:08.7718687"; // culture: de-CH DateTime d = DateTime.Parse(s); // works
그러나, 탈 DE 로케일에서 예를 들어, 소수 구분 쉼표 (하지 점)입니다. 그래서 예를 들어이된다 :
string s = "11.05.2010 15:03:08,7718687"; // culture: de-DE (note the comma) DateTime d = DateTime.Parse(s); // throws a FormatException
그것은이 구문 분석을 수행 할 CultureInfo.CurrentCulture를 사용하도록되어로 DateTime.Parse (들)이 지금 FormatException을 던져해야한다고 나에게 이상한입니다. 심지어 CurrentCulture를 인수로 명시 적으로 전달한다고해서 어느 쪽도 도움이되지는 않습니다. 아무도 왜 이것이 효과가 없다는 생각을 가지고 있습니까? 구문 분석하지 않으면 NumberFormatInfo.NumberDecimalSeparator가 고려됩니까?
초 단위 이하의 시간 형식이 표준화되기 전날 (ISO 8601 : 2004) 표준 구분이 적용되기 전날에는 구분 기호가 무엇인지는 중요하지 않았습니다. 따라서 표준은 일반적으로 잠시 후 몇 초 동안 소수점으로 사용해야하는 것을 다루지 않습니다. 숫자 형식 정보가 정확하다는 것은 분명하지 않지만 반드시 더 나은 대안은 아닙니다. 우리는 최근에이 문제와 씨름 해 왔으며 (Windows 플랫폼이 아닌 완전히 다른 맥락에서) 아직 좋은 시스템을 찾지 못했습니다. 후진 (+) 호환성은 우리에게 몇 가지 두통을 안겨줍니다. –