У меня есть единая строковая переменная, которая хранит то, что может быть полной датой или частичной Дата:
1) Годучная дата: 12/12/2010 12:33 утра
2) Частичная дата: 12:33 am (нет даты поля только времени)
Я пытаюсь выяснить, что Будьте лучшим подходом для анализа строки, чтобы выяснить, отсутствует, отсутствует ли строка строки даты или нет. Причина в моем кодексе, если дата отсутствует, я добавим дату по умолчанию для строки (например, 1/1900). Имейте в виду, что время может быть в различных форматах.
Обновление - мой конкретный ответ на эту проблему.
Как заявил все «посты», есть несколько ответов на эту проблему, это в конечном итоге, что я использовал и надеюсь, что это может помочь другим *:
public DateTime ProcessDateAndTime(string dateString)
{
string dateAndTimeString = dateString;
string[] timeFormats = new string[]
{
"hh:mm tt", "hh:mm:ss tt",
"h:mm tt", "h:mm:ss tt",
"HH:mm:ss", "HH:mm", "H:mm"
};
// check to see if the date string has a time only
DateTime dateTimeTemp;
if (DateTime.TryParseExact(dateString, timeFormats,
CultureInfo.InvariantCulture.DateTimeFormat, DateTimeStyles.None, out dateTimeTemp))
{
// setting date to 01/01/1900
dateAndTimeString = new DateTime(1900, 1, 1).ToShortDateString() + " " + dateString;
}
return DateTime.Parse(dateAndTimeString);
}
* Примечание. Этот метод основан на предположении, что есть Только определенное количество форматов временных времен, используемых в вашем приложении, и что гарантировано, что правильно отформатированная дата и время, или время только в строке времени (предварительная проверка для удаления текста мусора).