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 未満の日に 2 桁の数字を使用することを想定していることに注意してください。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 に答える