4

ASP.NET MVC 4 with EF プロジェクトがあります。ユーザーのログイン時に現在のスレッド カルチャを変更しています。Global.asax.cs

protected void Application_BeginRequest(object sender, EventArgs e)
    {           
        CultureInfo objculture = new CultureInfo(Helios.MvcApplication.Lang); //Lang = en-US, ro-RO, fr-FR

        //DateTimeFormatInfo objDTFI = objculture.DateTimeFormat;
        //objDTFI.ShortDatePattern = "dd.MM.YY";
        //objDTFI.DateSeparator = ".";
        //objculture.DateTimeFormat = objDTFI;

        objculture.NumberFormat.CurrencyDecimalSeparator = ".";
        objculture.NumberFormat.NumberDecimalSeparator = ".";

        Thread.CurrentThread.CurrentUICulture = objculture;
        Thread.CurrentThread.CurrentCulture = objculture;   
    }

DateTime.cshtml //日時の EditorTemplate

@model System.DateTime?
@Html.TextBox("", String.Format("{0:d}", Model.HasValue ? Model : DateTime.Today), new { @class = "datefield" })

<link rel="stylesheet" href="http://code.jquery.com/ui/1.8.20/themes/base/jquery-ui.css" type="text/css" media="all" />
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js" type="text/javascript"></script>
<script src="http://code.jquery.com/ui/1.8.20/jquery-ui.min.js" type="text/javascript"></script>

<script  type="text/javascript">
$(function () {
    $(".datefield").datepicker({
        changeMonth: true, changeYear: true, firstDay: 1, changeYear: true,
        dateFormat: 'dd.mm.yy'
    });
});

使用する場合: String.Format("{0:yyyy-MM-dd}"またはString.Format("{0:MM-dd-yyyy}")動作しますが、String.Format("{0: dd.MM.yyyy}」では機能しません。

Q:文化や言語ごとに日時形式を「dd.MM.yyyy」に変更するにはどうすればよいですか?

4

2 に答える 2

1

古い質問ですが、現在の文化に関係なく文字列形式を変更する必要がある他の人向け:

DateTime.Today.ToString("dd.MM.yyyy", CultureInfo.InvariantCulture)
于 2015-07-10T08:32:32.280 に答える
0

私はこれに対する答えを探していましたが、ここで答えを見つけました

値をコントローラーに戻すときの ASP.NET MVC 日時カルチャの問題

于 2013-06-18T13:02:09.583 に答える