Используя нижеприведенный метод DateTime.TryPaseExact дает мне разные варианты, когда ожидается.DateTime.TryParseExact Ошибочные результаты
я получаю следующие форматы вернулся из кода ниже:
2014-02-10 18:32:37
1402-10-18 17:23:00 (which is clearly incorrect)
Как только получить формат yyyy-MM-dd HH:mm:ss
вернулся?
static readonly string[] DateFormats = new string[] { "yyMMddHHmm", "yyyyMMddHHmm", "yyMMddHHmmss", "yyyy-MM-dd HH:mm:ss" };
DateTime date;
DateTime.TryParseExact("140211090915", DateFormats, CultureInfo.InvariantCulture,
DateTimeStyles.AssumeLocal, out date);
Кроме того, если кто-то может объяснить, почему это 140211084947
вход возвращает ожидаемый формат и 140211090915
возвращает нежелательный формат я был бы благодарен
Ни 'yyMMddHHmm' ни' гггг-мм-дд чч: мм: ss' матчи строка ввода – MarcinJuraszek
@MarcinJuraszek Да, вы правы. Но он соответствует формату 'yyMMddHHmmss' и' yyyyMMddHHmm'. Из метода '' DateTime.TryParseExact' '(http://msdn.microsoft.com/en-us/library/h9b85w22%28v=vs.110%29.aspx) _ Формат представления строки должен совпадать ** по крайней мере один из указанных форматов. ** –
В вашем ответе не совсем понятно, почему он иногда выбирает один формат, а иногда другой, который, по-видимому, связан с тем, что в случае значения 140211090915 значение «0915» является действительным time, do соответствует первому шаблону, тогда как для 140211084947 «4947» - нет, поэтому применяется следующий шаблон. – Iridium