Я пишу класс C #, который будет конвертировать строки в даты.Довольно легко, я думаю.Класс принимает строки форматов, такие как "yyyy-MM-dd" и строки ввода, такие как "2010-10-10"
Однако у меня есть несколько случаев, которые вызывают у меня проблемы:
format "yyyyMMdd" input "19950000"
или
format "dd-MM-yyyy" input "00-06-2001"
Обратите внимание, что в этих случаях есть нули ('00') для дня и / или месяца, и что они не могут быть преобразованы в DateTime.Мне нужно заменить их.
Для обработки этих случаев мне нужно разбить входную строку на части, по одной на день, месяц и год, чтобы я мог установить некоторые день и месяц по умолчанию (вероятно, 01) если они отсутствуют.Но мне нужно использовать formattring для этого.
Итак, вопрос в том, как разделить строку ввода на компоненты, указанные в строке format? *
Спасибо
[ОБНОВЛЕНИЕ] Используя ответ Джо, я пришел к следующему:
string[] formats = { format, format.Replace("dd", "00").Replace("MM", "00"), format.Replace("dd", "00"), format.Replace("MM", "00") };
// Parse input
DateTime d = DateTime.ParseExact(txtDate.Text, formats, CultureInfo.InvariantCulture, DateTimeStyles.None);
При этом используется предоставленный формат и создаются альтернативные форматы с нулями ('00') для дня, месяца и дня и месяца.
Спасибо, Джо!