5

私が間違っている場合は誰かが私を修正してください。ただし、C# で yyyy/MM/dd (または他の特定の形式) の日付を解析するの

DateTime.ParseExact(theDate, "yyyy/MM/dd");

いいえ、C# では IFormatProvider を作成する必要があります。

毎回これを行う必要がないように、これを設定する app.config フレンドリーな方法はありますか?

DateTime.ParseExact(theDate, "yyyy/MM/dd", new CultureInfo("en-CA", true));
4

9 に答える 9

14

IFormatProvider 引数は null にすることができます。

于 2008-09-15T16:54:23.150 に答える
6

ParseExactにはカルチャが必要です。「yyyyMMMdd」を検討してください。MMMは、現在のカルチャを使用するローカライズされた月の名前になります。

于 2008-09-15T17:04:44.887 に答える
5

現在のアプリケーションカルチャを使用します。

DateTime.ParseExact("2008/12/05", "yyyy/MM/dd", System.Globalization.CultureInfo.CurrentCulture);

グローバリゼーションタグを使用して、app.configでアプリケーションカルチャを設定できます。おもう。

于 2008-09-15T16:59:26.723 に答える
3

拡張メソッドを作成します。

public static DateTime ParseExactDateTime(this string dateString, string formatString) {
    return DateTime.ParseExact(dateString, formatString, new CultureInfo("en-CA", true));
}
于 2008-09-15T16:56:18.107 に答える
3

特定の日付と時刻の記号と文字列(特定の言語での曜日の名前など)を判別するには、フォーマットプロバイダーが必要です。nullを使用できます。その場合、現在のカルチャに対応するCultureInfoオブジェクトが使用されます。

毎回指定する必要がない場合は、フォーマットプロバイダーとしてnullまたはCultureInfo( "en-CA"、true)を渡す拡張メソッドを作成します。

于 2008-09-15T17:06:26.707 に答える
1

IFormatProviderを一度作成し、後で使用するために保存することもできます。

于 2008-09-15T16:59:59.580 に答える
1

Convertクラスを使用することもできます

Convert.ToDateTime("2008/11/25");
于 2008-09-15T17:02:54.470 に答える
0

//日付をMySql互換フォーマットに変換

DateTime DateValue = Convert.ToDateTime(datetimepicker.text);

string datevalue = DateValue.ToString("yyyy-MM-dd");

于 2009-01-07T20:25:10.967 に答える
0

Globalization.CultureInfo.InvariantCulture を使用することの何が問題になっていますか?

于 2010-03-02T17:15:30.093 に答える