Ответ 1
Использовать DateTime.ParseExact(). Что-то вроде:
string date = "20100102";
DateTime datetime = DateTime.ParseExact(date, "yyyyMMdd", CultureInfo.InvariantCulture);
Каков наилучший способ конвертировать строку в дату на С#, если мой формат входящей даты находится в YYYYMMDD
Пример: 20001106
Использовать DateTime.ParseExact(). Что-то вроде:
string date = "20100102";
DateTime datetime = DateTime.ParseExact(date, "yyyyMMdd", CultureInfo.InvariantCulture);
DateTime.TryParseExact(myDateString, "yyyyMMdd",
CultureInfo.InvariantCulture,
DateTimeStyles.None, out myDateVar )
Отметьте DateTime.ParseExact или DateTime.TryParseExact.
используйте DateTime.TryParseExact с строкой шаблона "yyyyMMdd"
, если вы используете .NET 2.0 или лучше.
Если вы застряли в .NET 1.1, используйте DateTime.ParseExact
см. Стандартные строки формата DateTime для правил создания строк шаблонов.
DateTime yourDateTime = DateTime.ParseExact(yourString, "yyyyMMdd", null);
Использование TryParseExact обычно лучше, чем ParseExact, поскольку оно не будет генерировать исключение, если преобразование завершится с ошибкой. Вместо этого он возвращает true, если он успешный, false, если это не так:
DateTime dt;
if (DateTime.TryParseExact("20100202", "yyyyMMdd", CultureInfo.InvariantCulture, DateTimeStyles.None, out dt))
{
Console.WriteLine(dt.ToString());
}