ASP.NETでどのように日付形式をグローバルに設定しますか?

StackOverflow https://stackoverflow.com/questions/300841

  •  08-07-2019
  •  | 
  •  

質問

ASP.NETで日付形式をグローバルに設定する方法

ローカルマシンとサーバーの地域設定は「英語(ニュージーランド)」に設定されています。

dd / MM / yyyy で日付をフォーマットすると、たとえば今日の 19/11/2008 が表示されると予想されます。

最近まで、それが実際にローカルマシンとサーバーの両方から取得したものです。

ごく最近、なんらかの謎の理由で、私たちのローカルマシンはこれまでになくわずかに変更されました。 「英語(ニュージーランド)」に設定されているにもかかわらず、日付区切り文字が / から-に変更されました! 「英語(ニュージーランド)」と表示されているサーバーでは、同じ変更は行われていません。および日付区切り記号の /

だから今、私のローカルマシンでは、 dd / MM / yyyy の形式で、 19/11/2008 <の代わりに 19-11-2008 / code>。

これは少々戸惑います。

これまでのところ私が見ることができる唯一の方法は、スラッシュをエスケープし、フォーマットを dd \ / MM \ / yyyy に設定することです。動作しているように見えますが、理想的なソリューションではないようです。

誰でも助けていただけますか?

注:これはイントラネットアプリケーション用であり、真のグローバリゼーションについては気にしません。日付形式を修正したいだけで、変更しないでください。

役に立ちましたか?

解決

Global.asaxファイルで現在のスレッドカルチャを変更し、たとえば次の日付形式を上書きできます。

using System.Globalization;
using System.Threading;

//...
protected void Application_BeginRequest(Object sender, EventArgs e)
{    
  CultureInfo newCulture = (CultureInfo) System.Threading.Thread.CurrentThread.CurrentCulture.Clone();
  newCulture.DateTimeFormat.ShortDatePattern = "dd-MMM-yyyy";
  newCulture.DateTimeFormat.DateSeparator = "-";
  Thread.CurrentThread.CurrentCulture = newCulture;
}

他のヒント

web.configで、次のドキュメント

<system.web>
    <globalization  culture="en-NZ"  uiCulture="en-NZ"/>
</system.web>

良い方法は、Web.Configを構成することです。日付形式は、aspxのすべてのコンポーネントに表示されます

<system.web>    
<globalization uiCulture="en" culture="en-NZ" />
</system.web>

操作せずにカルチャを設定できます。


using System.Globalization;
using System.Threading;

//... protected void Application_BeginRequest(Object sender, EventArgs e) {
Thread.CurrentThread.CurrentCulture = Thread.CurrentThread.CurrentUICulture = new CultureInfo("en-NZ"); }

これは古い投稿ですが、ここで言及するのが役立つと思いました。私の問題はOPが要求したようなものでしたが、解決策はコントロールパネルからではなくIISで文化が変更されたことです。

IISには独自のカルチャ選択があり、デフォルトではローカルコンピューターのカルチャに従います。しかし、何らかの理由で別の文化に変更され、それらの奇妙な日付形式を取得し始めました。

他の回答はこちら

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top