DateTime.ParseExact를 사용하여 DateTime 문자열을 파싱하는 데 어려움을 겪고 있습니다.DateTime 문자열 파싱
DateTime result;
CultureInfo provider = CultureInfo.InvariantCulture;
// Parse date-only value with invariant culture.
//format = "mm/dd/yyyy";
format = "d";
try
{
result = DateTime.ParseExact(data+" 12:00:00 AM", format, provider);
}
data는 "5/20/2009"형식의 날짜가로드 된 문자열 변수입니다. 나는 가짜 시간에 tacking을 시도해 보았다. 그게 효과가있을지를 보았고, tack on이나 tack을 사용하지 않았다. 또한 "g"형식 지정자를 사용하여 시도하고 작동하지 않았다, 나는 항상 유효한 DateTime 문자열이 아닙니다 예외가 발생합니다. 그것이 작동하는 유일한 날짜는 "12/20/2009"와 같습니다 ("MM"부분에 2 자리가 표시됨)
한 자리 숫자로 된 월을 사용하는 데는이 루틴을 사용할 수 없습니다! MSDN의 예제는 MSDN에서
6/15/2009 1:45:30 PM -> 6/15/2009 (en-US)
입니다.이 기능은 작동하지 않습니다. 나는 내가 뭘 잘못하고 있는지 이해하지 못하고있다. 나는 또한 "mm/dd/yyyy"와 "MM/dd/yyyy"와 같은 형식 지정자를 시도했지만 아무 소용이 없습니다.
DateTime.ParseExact("6/15/2009", "d", CultureInfo.GetCultureInfo("en-US"));
왜 내가 그 문화를 지정해야합니다? 또한 ParseExact가 아닙니다. 우리는 날짜 문자열이 나오는 형식을 정확히 알고 있습니다. 왜 형식 문자열을 사용할 수 없습니까? 이것을 사용하면 거기에 있으면 안되는 것들을 가져올 수 있습니다 (날짜 필드의 시간 지정은 아니오입니다) – Earlz
예제를 ParseExact로 변경했습니다. 문화권을 지정해야합니다. 왜냐하면 입력 내용을 문화권의 방식 (즉, en-US 형식)으로 파싱하고 싶다고 말하기 때문입니다. – dtb
좋아, 나는 단지 불변량이 미국을 의미한다고 생각했다. .. 고마워! – Earlz