我有这个代码来设置文化
public static CultureInfo GetRegionDefaultCulture(int regionId)
{
// removed code to shorten....
return CultureInfo.CreateSpecificCulture("en-au");
}
在我的测试示例后面的代码中使用它
Thread.CurrentThread.CurrentCulture =
CultureHelper.GetRegionDefaultCulture(regionId);
在我的测试示例后面的 aspx 代码中使用它
DateTime dtNow = DateTime.Now;
Response.Write("<br/>" + dtNow.ToString("dd MMM yyyy hh:mm tt"));
输出
09 Nov 2010 04:42 PM
如果我更新代码以使用这些文化中的任何一种,我也会在输出中正确获得 AM/PM
en-PH
en-GB
en-US
en-JM
如果我更新要使用的代码
en-IE
输出是
09 Nov 2010 04:44
我错过了什么吗?为什么 en-IE 的行为不同?
答案 来自@Jordans 的答案。
添加这段代码有效。
DateTimeFormatInfo info = CultureInfo.CurrentCulture.DateTimeFormat;
info.AMDesignator = "AM";
info.PMDesignator = "PM";