나는 구멍에 갇히고 나 자신의 삶은 내 자신을 파헤 치지 못한다.하루 중 시간이 있으십니까?
이것은 매우 심미적 인 질문이지만 내 코드에서 묻는 것을 얻고 싶습니다. 나는 LINQ 쿼리뿐만 아니라 textBox에 보내는 DateTime 변수에 시간을 나타내는 문자열을 파싱하려고합니다.
"yyyy-MM-dd hh : mm : ss"형식으로 내 시간을 나타내려고합니다. 선택 쿼리에서 가져온 것이지만 곧 사용자가 가지고있는 내용을 구문 분석하려고합니다. 그것은 "2011 년 1 월 13 일 00:00:00"형식이더라도 나를 "2013 년 1 월 13 일 12:00:00 AM", DateTime 텍스트 상자에 작성된.
나는이 작품을 만들기 위해 모든 노력을 기울 였지만, 해결책이 있어야한다고 느낀다. 너희들이 그것을 찾도록 도와 줄 수 있니? IFormatProvider는 무엇을 사용하고 있습니까?
이 내가 뭘하려 : 그것의
//textBox1.Text = "2011-01-13 00:00:00";
DateTime = TimeFrom;
TimeFrom = DateTime.ParseExact(textBox1.Text, "yyyy-MM-dd hh:mm:ss", null);
TimeFrom = DateTime.ParseExact(textBox1.Text, CultureInfo.CurrentCulture.DateTimeFormat.GetAllDateTimePatterns(), new CultureInfo("sv-SE"), DateTimeStyles.None);
TimeFrom = DateTime.ParseExact(textBox1.Text, CultureInfo.CurrentCulture.DateTimeFormat.GetAllDateTimePatterns(), new CultureInfo("sv-SE"),System.Globalization.DateTimeStyles.AssumeUniversal);
TimeFrom = DateTime.ParseExact("2008-10-01 16:44:12.000", "yyyy-MM-dd HH:mm:ss.fff", CultureInfo.CreateSpecificCulture("en-US"));
textBox1.Text = TimeFrom.ToString();
그러나 아무도 나에게 내가 그렇게 갈망 서식을 제공하지 않습니다.
UPDATE : 어떻게 든 현재 문화는 내가 "에서"SV-SE "에서 textBox1.Text 값을 구문 분석하고 싶은 시점으로 내 날짜 시간 변수를 선언 시간 변경있어 나타납니다
ko-EN "이되었습니다. 그래서 저는 제 시간을 형식화하는 방식을 바꾸기로 결심했습니다. 그것은 내 코드에서하고있는 일이 아닙니다. 왜 어떤 아이디어?
왜 내 (IFormatProvider) new CultureInfo("sv-SE",true)
을 무시하기로 결정했는지는 아직 알지 못했습니다.
의견이 있으면 알려 주시기 바랍니다.
그것은 파서가 아닌 잘못된 형식을 사용하는 'ToString'입니다. 'DataTime' 구조체는 포맷팅에 대해 알고 있습니다. 그것은 단지 시간을 절약합니다. – CodesInChaos
나는 다른 것을 구걸한다. 처음으로 DateTime을 UI에 쓰면 올바른 형식이됩니다. 그러나 해당 문자열을 다시 파싱 한 후 DateTime으로 변경하면 디버그에 따라 DateTime 변수에서 서식이 변경됩니다. –
디버거에서 보여주는 것을 신뢰할 수 없습니다. 단지 ToString()을 호출하는 것입니다. ToString()은 DateTime 객체가 실제로 무엇인지 나타내는 하나의 표현입니다. – Greg