解析日期格式难以转换

时间:2012-04-18 18:54:39

标签: .net regex vb.net datetime-parsing

我解析了一个字符串格式的日期,并希望将其转换为日期时间格式,但无法弄清楚如何执行此操作。 日期显示如此;

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")

任何赞赏的想法

2 个答案:

答案 0 :(得分: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");

将生成所需的输出日期格式。

作为参考,您应该查看DateTime.ParseExact()Custom Date and Time Format Strings的MSDN文档。

答案 1 :(得分: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);
  }