У меня есть строка, как это:Преобразование строки в DateTime
"20090212"
, и я хочу, чтобы преобразовать в действительный C# DateTime.
Нужно ли это разбирать, потому что это слишком много работает?
У меня есть строка, как это:Преобразование строки в DateTime
"20090212"
, и я хочу, чтобы преобразовать в действительный C# DateTime.
Нужно ли это разбирать, потому что это слишком много работает?
Вы можете использовать DateTime.ParseExact:
DateTime result =
DateTime.ParseExact("20090212", "yyyyMMdd", CultureInfo.InvariantCulture);
Спасибо за ответ! Он работал гладко :) –
хороший совет, наверняка пригодится когда-нибудь – mattythomas2000
Посмотрите на метод DateTime.TryParseExact (MSDN). Я предпочитаю метод TryParseExact для метода ParseExact, потому что он возвращает логическое значение, указывающее, было ли преобразование успешным, вместо того, чтобы выбрасывать исключение, но любой из них будет работать.
DateTime.ParseExact(str, "yyyyMMdd", CultureInfo.CurrentCulture);
... и я очень сомневаюсь, что у меня есть первый.
Хотя для полноты картины, я предпочитаю TryParseExact
DateTime dt;
if(DateTime.TryParseExact(str, "yyyyMMdd", CultureInfo.CurrentCulture, DateTimeStyles.None, out dt)) {
// ... use the variable dt
}
В общем, безопаснее использовать 'CultureInfo.InvariantCulture', когда вы знаете, что все входные строки будут в определенном формате. Иногда коды формата интерпретируются по-разному в разных локалях. – Brian
быстрый палец первый ... Это удивительно полезный вопрос (я должен искать мой собственный код ответа, когда я делаю это), но там будет быть горсткой ответов в течение первой минуты ... – Unsliced
Точный дубликат: http://stackoverflow.com/questions/2188585/convert-string-to-date-in-c/2188593#2188593 –
@Dynami Он никогда не появлялся в результатах поиска. –