在文化发展的同时将日期格式更改为en-us

Moh*_*eem 9 c# internationalization

我正在用法语本地化一个网站.但是我不应该将日期格式更改为法语.它必须按照en-us格式保留,即使文化设置为fr-ca,即,当其余内容是法语时,日期格式仍应为英语(en-us).

ber*_*hof 9

要更改日期的格式,您可以基于现有的CultureInfo(在您的情况下为"fr-CA")创建自定义CultureInfo,仅修改日期格式.我对此没有任何经验,但链接的文章和本文解释了它是如何完成的.据说,这并不太难.

我想,设置System.Threading.Thread.CurrentThread.CurrentCulture自定义CultureInfo的实例(例如在Page.Load事件中)应该可以完成这项工作.


或者,使用CultureInfo类以每个字符串为基础指定区域性:

CultureInfo culture = new CultureInfo("en-US");
Run Code Online (Sandbox Code Playgroud)

每当您向页面写入日期时,请使用以下语法:

myDate.ToString("d", culture);
Run Code Online (Sandbox Code Playgroud)

要么

string.Format(
  culture,
  "This is a string containing a date: {0:d}",
  myDate);
Run Code Online (Sandbox Code Playgroud)

的CultureInfo类驻留在System.Globalization命名空间和d在上述的格式是在其中输出的日期.有关格式字符串的更多信息,请参阅John Sheehan的".NET格式字符串快速参考"备忘单.


Eln*_*oor 6

就我而言,我必须设置应用程序的语言,还要确定语言是否是从右到左的语言,但还需要保持标准的日期时间格式。所以这就是我所做的:

string culture = "ar-SA";  
//Set language and culture to Arabic  
Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture(culture);
Thread.CurrentThread.CurrentUICulture = CultureInfo.CreateSpecificCulture(culture);

//But independent of language, keep datetime format same
DateTimeFormatInfo englishDateTimeFormat = new CultureInfo("en-CA").DateTimeFormat;
Thread.CurrentThread.CurrentCulture.DateTimeFormat = englishDateTimeFormat;
Run Code Online (Sandbox Code Playgroud)


Moh*_*eem 1

令人惊讶的是我得到了一个非常简单的答案。在设置 Culture 和 UICulture 时,我所需要做的就是始终将 Culture 属性设置为 en-us 。这将导致始终以英文显示日期格式。