0

これに似た問題があります >フォーマット例外文字列が有効な DateTime として認識されませんでした

ただし、私の仕様では ddMMyyyy の日付形式が必要なため、コードを変更しましたが、同じエラーが引き続き発生します

 DateTime now = DateTime.Now;
 DateTime dt = DateTime.ParseExact(now.ToString(), @"ddMMyyyy", CultureInfo.InvariantCulture);

理由はわかりません。

4

4 に答える 4

1

format で日付を解析しようとしているため、コードは失敗しddMMyyyyます。既定DateTime.ToString()では、現在のカルチャで日付と時刻の両方を含む形式が生成されます。オーストラリアにいる私にとっては、dd/MM/yyy hh:mm:ss p例えば11/10/2013 11:07:03 AM

DateTime オブジェクトは、実際には日付を個別のコンポーネント (日、月、年など) として保存することを認識しておく必要があります。これらは、値を任意の形式で出力する場合にのみ形式化する必要があります。例えば

DateTime now = DateTime.Now;
string formattedDate = now.ToString("ddMMyyyy", DateTimeFormatInfo.InvariantInfo);

詳細については、API ドキュメントを参照してください: http://msdn.microsoft.com/en-us/library/8tfzyc64.aspx

于 2013-10-11T00:12:53.687 に答える
1

が機能するにはParseExact、入ってくる文字列がパターン マッチングと正確に一致する必要があります。あなたが言及した他の質問では、テキストは、形式が正確に 1 つの形式に指定された Web フォームからのものでした。

あなたの場合DateTime.Now.ToString()、フォーマットではないものを使用して日付を生成しましたddMMyyyy。日付を往復させたい場合は、両方の場所で形式を指定する必要があります。

DateTime now = DateTime.Now;
DateTime dt = DateTime.ParseExact(now.ToString("ddMMyyyy"), @"ddMMyyyy", CultureInfo.InvariantCulture);
于 2013-10-10T23:22:44.287 に答える