Итак, у меня есть дата, хранящаяся в британском формате (дд/мм/гг), который мне нужно отображать в локали, где бы он ни находился.Как отображать дату в локали для 0 значений?
Вопрос заключается в том, что эта дата может быть 000000 (00/00/2000); поэтому я не могу напрямую преобразовать его в DateTime, так как DateTime не поддерживает 0 значений за день или месяц.
меня это до сих пор:
int dateInt = ddmmyy;
var year = (dateInt % 100) + 2000;
var month = (dateInt/100) % 100;
var day = (dateInt/100000);
var result = new DateTime(year, month, day); //2014/00/00 at this point, so breaks.
var resultStr = result.ToString(CultureInfo.InvariantCulture);
return resultStr;
Что такое правильный способ, чтобы добавить поддержку 0 значения изначально? Я попытался изменить 0 на 1 перед преобразованием в DateTime, запустив преобразование, а затем снова заменив 0; но из-за вариантов культуры я не вижу способа, которым этот метод может поддерживать другие культуры, цель которых заключается в этом преобразовании.
Любые идеи? Я предполагаю, что это обычная проблема.
Как насчет if (ddmmyy == 0) return new DateTime (2000,1,1); После первой строки –
@GeorgeVovos Это всего лишь один случай. Общее решение должно быть предоставлено .. –
@ SonerGönül из того, что я понял, только 000000 был единственным недопустимым значением –