Как проверить, если строка «Дата и время» имеет только время?

У меня есть единая строковая переменная, которая хранит то, что может быть полной датой или частичной Дата:

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);
}

* Примечание. Этот метод основан на предположении, что есть Только определенное количество форматов временных времен, используемых в вашем приложении, и что гарантировано, что правильно отформатированная дата и время, или время только в строке времени (предварительная проверка для удаления текста мусора).

6
задан John Saunders 5 November 2012 в 07:57
поделиться