63

ASP.NET で日付形式をグローバルに設定するにはどうすればよいですか?

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

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

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

つい最近、不思議な理由で、ローカル マシンがわずかに変更されました。「英語 (ニュージーランド)」に設定されたままですが、日付の区切り文字が から に変更され/ました-。「English (New Zealand)」と/日付区切り記号が表示されているサーバーでは、同じ変更は行われていません。

だから今私のローカルマシンのために、代わりにdd/MM/yyyy私が得るフォーマットのために.19-11-200819/11/2008

これは少し戸惑います。

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

誰でも助けてもらえますか?

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

4

6 に答える 6

112

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;
}
于 2008-11-19T02:35:14.250 に答える
54

web.configで、次のドキュメントに従ってタグを設定します

<system.web>
    <globalization  culture="en-NZ"  uiCulture="en-NZ"/>
</system.web>
于 2009-05-08T00:47:45.803 に答える
9

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

<system.web>    
<globalization uiCulture="en" culture="en-NZ" />
</system.web>
于 2013-11-06T02:18:29.227 に答える
4

操作なしでカルチャを設定できます。


using System.Globalization;
using System.Threading;

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

于 2008-11-19T03:03:21.463 に答える
0

書式文字列の場合、書式文字 / は実際には期待どおりにリテラル "/" に解決されません。代わりに、地域設定で構成されている現在の日時区切り記号に解決されます。DateTimeFormatInfo.DateSeparator プロパティを変更してみてください。

詳細については、http: //msdn.microsoft.com/en-us/library/8kb3ddd4.aspxを参照してください。

于 2008-11-19T03:15:18.647 に答える