0

問題があります。ユーザーベースの日時形式設定があります。次に、Global.asaxで入力形式を次のように設定します。

   void MvcApplication_PreRequestHandlerExecute(object sender, EventArgs e)
    {

                if (userSettings.Settings.ContainsKey(Constants.DateFormat))
                {
                    CultureInfo cultureInfo = System.Threading.Thread.CurrentThread.CurrentCulture;
                    cultureInfo.DateTimeFormat.DateSeparator = "/";
                    cultureInfo.DateTimeFormat.FullDateTimePattern = userSettings.Setting.Attributes[Constants.DateFormat];
                    cultureInfo.DateTimeFormat.LongDatePattern = userSettings.Setting.Attributes[Constants.DateFormat];
                    cultureInfo.DateTimeFormat.ShortDatePattern = userSettings.Setting.Attributes[Constants.DateFormat];
                }
     }

しかし、UIテキストボックスからプロパティに日付値をバインドすると、null値しか取得されません。このプロセスで何が欠けていますか。

ユーザーが指定した日付形式は「dd/mm/yy」です。MVCモデルのバインドが行われた後、「01/11/12」の入力は2012年1月11日にバインドされます。

問題を提案し、修正がどこで機能するかを提案してください。

編集

mm / dd/yyのような日付形式の文字列の最初に月を含めることだけが可能ですか。フォーマット文字列としてdd/mm/yyを使用することはできませんか。

4

2 に答える 2

0

おそらく、ローカライズできる正式な日付形式を調べる必要があります。ISO 8601 を使用することにしました (現在、これが WebAPI のデフォルトです)。そうすれば、シリアル化された形式から正しい日付を読み取ることをクライアントで確信できます。ただし、時間をローカライズする必要があります (必要な場合)。

Scott Hanselman は、この問題について優れた記事を書いています。

そして、このdatetime javascriptライブラリは面白そうです。

于 2012-12-17T17:17:32.610 に答える
0

このようなもの?

cultureInfo.DateTimeFormat.LongDatePattern = CultureInfo.CreateSpecificCulture("id-ID");

この例では、インドネシアの文化を取り上げており、dd/MM/yyyy 形式を使用しています。

于 2012-12-17T16:37:41.407 に答える