2015-04-16 4 views

ответ

10

Сделайте это в два этапа. Используйте DateTime.ParseExact для анализа исходной строки, а затем использовать ToString() для вывода его в другой desired format:

var input = "Thu Apr 16 09:55:44 2015"; 

var parsed = 
    DateTime.ParseExact(input, "ddd MMM dd HH:mm:ss yyyy", CultureInfo.InvariantCulture); 

var output = parsed.ToString("dd/MM/yyyy HH:mm:ss", CultureInfo.InvariantCulture); 
+1

Лучше передать 'CultureInfo.InvariantCulture' в' ToString', чтобы сохранить вывод * (разделитель) * независимый от культуры – Habib

+0

Спасибо @Habib, я обновлю его. Береженого Бог бережет. –

+1

Я имел в виду в 'ToString', например' parsed.ToString ("dd/MM/yyyy HH: mm: ss", CutureInfo.InvariantCulture); 'Без него это может привести к другому разделителю дат, например, если культура по умолчанию это 'en-IN', вы получите результат как:' 16-04-2015 09: 55: 44', – Habib

0

Прежде всего, вам нужно преобразовать DateTime:
https://msdn.microsoft.com/en-us/library/cc165448.aspx

Затем вам необходимо преобразовать в строку опять же, используя формат правильно, как вы можете увидеть здесь:
https://msdn.microsoft.com/en-us/library/zdtaw1bw(v=vs.110).aspx


// This example displays the following output to the console: 
//  d: 6/15/2008 
//  D: Sunday, June 15, 2008 
//  f: Sunday, June 15, 2008 9:15 PM 
//  F: Sunday, June 15, 2008 9:15:07 PM 
//  g: 6/15/2008 9:15 PM 
//  G: 6/15/2008 9:15:07 PM 
//  m: June 15 
//  o: 2008-06-15T21:15:07.0000000 
//  R: Sun, 15 Jun 2008 21:15:07 GMT 
//  s: 2008-06-15T21:15:07 
//  t: 9:15 PM 
//  T: 9:15:07 PM 
//  u: 2008-06-15 21:15:07Z 
//  U: Monday, June 16, 2008 4:15:07 AM 
//  y: June, 2008 
//   
//  'h:mm:ss.ff t': 9:15:07.00 P 
//  'd MMM yyyy': 15 Jun 2008 
//  'HH:mm:ss.f': 21:15:07.0 
//  'dd MMM HH:mm:ss': 15 Jun 21:15:07 
//  '\Mon\t\h\: M': Month: 6 
//  'HH:mm:ss.ffffzzz': 21:15:07.0000-07:00 
Смежные вопросы