문자열을 DateTime 개체로 변환하려고합니다. 내 문자열은 "2016 년 7 월 18 일"(날짜가 변경 될 수 있음) 형식입니다. 분명히 .Net은 유효한 날짜 형식으로 간주하지 않습니다. 제 3 자 라이브러리를 사용하지 않고 이것을 변환 할 수있는 쉬운 방법이 있습니까?DateTime으로 변환
답변
이 문제가 될 수 있기 때문에 내가 String.Replace
를 사용하지 않을는 현재 문화의 달 이름을 바꿀려고 문자열을 포함합니다.
대신 당신은 문자열에서이 부분을 제거 할 수 있습니다 :
string input = "18th Jul 2016";
string[] token = input.Split(); // split by space, result is a string[] with three tokens
token[0] = new string(token[0].TakeWhile(char.IsDigit).ToArray());
input = String.Join(" ", token);
DateTime dt;
if(DateTime.TryParseExact(input, "dd MMM yyyy", null, DateTimeStyles.None, out dt))
{
Console.WriteLine("Date is: " + dt.ToLongDateString());
}
현재 문화의 datetimeformat를 사용 null
TryParseExact
에 IFormatProvider
로 전달하는 경우. 영어 이름을 강제로 사용하려면 CultureInfo.InvariantCulture
을 전달하면됩니다. 이 달을 편집하려고 나던 있도록
'CultureInfo.CurrentCulture'는'CultureInfo.InvariantCulture'를 사용하는 것보다 낫습니다. –
@Ghasan : 영어 이름을 강요하고 싶을 때 더 좋지는 않지만 _correct_;) 고마워요. –
해결 방법 :
string dateStr = "18th Jul 2016";
dateStr = dateStr.Replace("th", "").Replace("st", "").Replace("rd", "").Replace("nd", "");
DateTime date;
if (DateTime.TryParseExact(dateStr, "dd MMM yyyy", CultureInfo.CurrentCulture,
DateTimeStyles.AssumeLocal, out date))
{
}
else
{
// error
}
"nd" – LordWilmore
대체 방법은 현지화 문제에 취약하며 일부 국가에서는 'st','nd','th' 또는 그 달의 이름으로'rd'. –
이 솔루션은 내 코드가 현지화 문제를 예상하지 않는 내부 시스템에서 실행되도록되어있어 입력이 항상이 형식으로 표시되기 때문에 문제가없는 것처럼 보입니다. 도와 주셔서 감사합니다! –
그것은 퍼지의 비트하지만
string result = System.Text.RegularExpressions.Regex.Replace(dt, "[st|th|nd|rd]{2} ", " ", System.Text.RegularExpressions.RegexOptions.IgnoreCase);
DateTime d = DateTime.Parse(result);
은 내가 [0-9] {1,2}으로 시작과 함께 교체 않았다 .. 공간을 포함 수는 있지만, 그건 당신이 (https://msdn.microsoft.com/en-us/library/w2sa9yss (V에서 [()``DateTime.ParseExact]을 확인 했 과잉
string dateString = "18th Jul 2016";
dateString = Regex.Replace(dateString, @"^(\d{2})(st|nd|rd|th)", "$1");
var result = DateTime.ParseExact(dateString, "dd MMM yyyy", CultureInfo.InvariantCulture);
- 1. SSIS의 문자열을 DateTime으로 변환
- 2. ado.net의 문자열을 datetime으로 변환
- 3. TimeSpan에서 DateTime으로 변환
- 4. 숫자를 datetime으로 변환 R
- 5. 스칼라에서 datetime으로 긴 변환
- 6. 유닉스 시간을 DateTime으로 변환
- 7. PHP에서 문자열을 DateTime으로 변환
- 8. 문자열에서 datetime으로 변환
- 9. xml에서 DateTime으로 변환 문자열
- 10. 문자열을 datetime으로 변환
- 11. datetime int를 datetime으로 변환
- 12. 24 시간에서 Datetime으로 변환
- 13. SQL을 datetime으로 변환
- 14. varchar를 datetime으로 변환
- 15. String을 DateTime으로 변환 하시겠습니까?
- 16. Convert.ToDateTime을 사용하여 datetime으로 변환
- 17. Pandas Column을 DateTime으로 변환
- 18. 문자열을 datetime으로 변환 SQLServer2008
- 19. 요소를 추출하고 datetime으로 변환
- 20. SSJS의 문자열을 DateTime으로 변환
- 21. Matlab Datenum을 Datetime으로 변환
- 22. MySQL에서 DateTime으로 변환
- 23. int를 datetime으로 변환
- 24. 개체를 datetime으로 변환
- 25. DateTime을 다른 DateTime으로 변환
- 26. 문자열을 asp.net에서 datetime으로 변환
- 27. 문자열을 Datetime으로 변환
- 28. 오라클에서 datetime으로 변환
- 29. 변환 C#을 사용하여 데이터를 datetime으로 변환 #
- 30. sql 서버에서 datetime으로 문자열 변환
듯 = 대. 110) .aspx) 메서드? – Sidewinder94
작동하지 않았습니다. –
관련 항목 : http://stackoverflow.com/q/2058639/447156 –