1

こんにちは、次の形式の文字列があり、23/03/2014 この形式に変換しようとしました:

string npacked = Convert.ToDateTime(packeddate).ToString("yyyy/MM/dd");

しかし、私はエラーが発生しています:

文字列は有効な DateTime として認識されませんでした

これも試しました:

string npacked = DateTime.Parse(packeddate).ToString("yyyy/MM/dd");

しかし、同じエラー。

4

4 に答える 4

1

Convert.ToDateTime は、文字列に対して DateTime.Parse() を実行しています (23/03/2014)。デフォルトのカルチャ (en-US) では、そのカルチャの日付は MM/DD/YYYY の形式にする必要があるため、失敗します。MSDNごとに別のカルチャ (フランス語など) に切り替える必要があります。

  // Reverse month and day to conform to the fr-FR culture. 
  // The date is February 16, 2008, 12 hours, 15 minutes and 12 seconds.
  dateString = "16/02/2008 12:15:12";
  try {
     dateValue = DateTime.Parse(dateString);
     Console.WriteLine("'{0}' converted to {1}.", dateString, dateValue);
  }   
  catch (FormatException) {
     Console.WriteLine("Unable to convert '{0}'.", dateString);
  }

  // Call another overload of Parse to successfully convert string 
  // formatted according to conventions of fr-FR culture.       
  try {
     dateValue = DateTime.Parse(dateString, new CultureInfo("fr-FR", false));
     Console.WriteLine("'{0}' converted to {1}.", dateString, dateValue);
  }   
  catch (FormatException) {
     Console.WriteLine("Unable to convert '{0}'.", dateString);
  }

後で「ToString」を呼び出しても、解析の試行には何の影響もありません。解析の出力をフォーマットするだけです。

于 2014-03-23T06:35:58.373 に答える
0

システムの日付時刻形式が原因である可能性があります。システムにmm-dd-yyyyフォーマットがあり、それをフォーマットで解析しようとしていdd-mm-yyyyます。システムの日付形式を に変更してみてくださいdd/MM/yyyy

于 2014-03-23T06:41:29.530 に答える