2

MM/DD/YYYY 形式のクエリ文字列があります

私はC#のようにそれを使用しています

DateTime d = Request.QueryString["dateTime"].toString();

日時形式が認識されないという多くのエラーが表示されます。ブラウザーのアドレスバー (クエリ文字列) の日時を手動で dd/mm/yyyy に変更すると、プログラムは正常に動作します。

クエリ文字列を変更できません。C# でブラウザから取得し、dd/mm/yyyy のような日付に変換する方法はありますか?

編集: クエリ文字列:

http://localhost:49543/HM/Admin/ViewDetails.aspx?OrderNo=10&DateCreated=08/30/2010

datecreated 部分が MM/DD/YYYY 形式であることがわかります。C#から取得できません。手動で 30/08/2010 に変更すると動作します

4

7 に答える 7

7
DateTime d = DateTime.ParseExact(Request.QueryString["dateTime"], "dd/MM/yyyy", CultureInfo.InvariantCulture);
于 2010-08-30T13:02:58.123 に答える
5

リクエストの文字列を に変換する方法DateTime:

DateTime d = DateTime.ParseExact(Request.QueryString["dateTime"], "dd/MM/yyyy", null);
于 2010-08-30T13:02:40.340 に答える
2

DateTime.ParseExact は、求めるソリューションです。ただし、次のような関数を使用してクエリ文字列データを検証することをお勧めします。

bool isValidDate(string dtStr) {
    string pattern = @"^(([0-2]\d|[3][0-1])\/([0]\d|[1][0-2])\/[2][0]\d{2})$)";
    System.Text.RegularExpressions.Regex re = new System.Text.RegularExpressions.Regex(pattern);
    return re.IsMatch(dtStr);
}

編集 1: ParseExact 以外に、次のものを使用できます。

DateTime.Parse(dateString, new System.Globalization.CultureInfo("tr-TR"))

トルコの日時形式は dd/MM/YYYY です。

于 2010-08-30T13:10:30.890 に答える
1
// Parsing:
DateTime d = DateTime.Parse(Request.QueryString["dateTime"].toString());

// Conversion:
string dString = d.ToWhateverFormatYouWant();

日付の書式設定に関する情報は次のとおりです。

http://msdn.microsoft.com/en-us/library/az4se3k1(VS.71).aspx

于 2010-08-30T13:02:07.987 に答える
1

DateTime.TryParseは素晴らしいオプションになる可能性があります..

于 2010-08-30T13:03:24.813 に答える
0

これを試してみてください

    DateTime d = 
           DateTime.ParseExact(Request.QueryString["dateTime"], 
           "dd'/'MM'/'yyyy",    
           CultureInfo.InvariantCulture);

私は似たようなものに直面しました:C#のDateTime形式

于 2010-08-30T13:17:25.123 に答える
0

以下を使用できます。DateTime.Now.ToString("dd/MM/yyyy");

于 2010-08-30T13:13:20.180 に答える