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

任何想法表示赞赏

4

2 回答 2

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 文档。

于 2012-04-18T19:08:38.523 回答
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);
  }
于 2012-04-18T19:07:32.780 回答