2012-04-18 1 views
3

Я разбираю дату в формате строки и хотел бы преобразовать ее в формат даты и времени, но не могу понять, как это сделать. Дата выглядит как таковая;проанализированный формат даты трудно конвертировать

Wed April 18 08:00:04 +08:00 2012 

и хотел бы его в простой форме

2012-04-18 08:00:00 

Код:

Dim postDate As DateTime 
Dim provider As CultureInfo = CultureInfo.InvariantCulture 

contentDate = Regex.Replace(contentDate, "\+", "") 
Dim format As String = "ddd MMMM dd HH:mm:ss zzz yyyy" 
postDate = DateTime.ParseExact(contentDate, format, provider) 
contentDate = postDate.ToString("yyyy-MM-dd hh:mm:ss tt") 

любые идеи оценили

+0

Можете ли вы показать, что вы пробовали, и описать, как то, что вы пробовали, не сработало? – overslacked

ответ

6
var format = "ddd MMMM dd H:mm:ss zzz yyyy"; 
var culture = System.Globalization.CultureInfo.InvariantCulture; 
DateTime date = DateTime.ParseExact(dateString.Trim(), format, culture); 

Будет анализировать формат даты, который вы предоставили. Обратите внимание, что указанная выше форматированная строка предполагает, что формат даты, который вы обрабатываете, использует две цифры в течение дней, которые меньше 10, т.е. April 01.

date.ToString("yyyy-MM-dd hh:mm:ss tt"); 

Будет выдавать желаемый формат выходной даты.

Для справки вы должны ознакомиться с документацией MSDN для DateTime.ParseExact() и Custom Date and Time Format Strings.

+0

thanks; Я пробовал это раньше, а затем точно использовал ваш код и все еще получаю сообщение об ошибке: строка не была признана действительным дат-временем – vbNewbie

+0

. Я думаю, что у вас может быть пробел или пробел в вашей строке. Попробуйте передать 'dateString.Trim()' в код и посмотреть, работает ли он. Я обновил свой ответ, чтобы показать это. –

+0

nevermind понял это спасибо, формат был неправильным ddd MMM dd hh: mm: ss zzz yyyy, и я удалял + в первую очередь. Спасибо за помощь. – vbNewbie

3
string dateString, format; 
    DateTime result; 
    CultureInfo provider = CultureInfo.InvariantCulture; 

    dateString = "Wed April 18 08:00:04 +08:00 2012"; 
    format = "ddd MMMM dd HH:mm:ss zzz yyyy"; 
    try { 
    result = DateTime.ParseExact(dateString, format, provider); 
    Console.WriteLine("{0} converts to your format {1}.", dateString, 
     result.ToString("yyyy-MM-dd HH:mm:ss")); 
    } 
    catch (FormatException) { 
    Console.WriteLine("{0} is not in the correct format.", dateString); 
    } 
+0

спасибо; Я пробовал это раньше, а затем точно использовал ваш код и все еще получаю сообщение об ошибке: строка не была признана действительным дата-временем – vbNewbie

+0

никогда не вычисляла это спасибо, формат был неправильным ddd MMM dd hh: mm: ss zzz yyyy и я удалял + в первую очередь. Спасибо за вашу помощь – vbNewbie

 Смежные вопросы

  • Нет связанных вопросов^_^