我正在寻找一种以mm / dd / yyyy或dd / mm / yyyy设置日期格式的方法。基于ip为我的页面设置文化以本地语言设置asp.net日历的语言。 例如:它适用于美国,澳大利亚,英国。但对于像沙特阿拉伯这样的国家,我希望我的日历仍然是英文,而不是像阿拉伯语那样的当地语言。
我基本上希望我的日历是英文的,但格式正确。
请查看代码。
P.S。, 此代码适用于印度,其中“en”为TwoLetterISOLanguageName。但后来我意识到并非所有国家都有“恩”。
private static CultureInfo GetCultureInfo(UserSession currentUserSession, string userHostAddress)
{
try
{
string location = null;
// use logged in user's configured location
if (currentUserSession != null)
{
location = currentUserSession.LocationString;
}
// fall back to IP address
if (string.IsNullOrEmpty(location))
{
string code = IPToCountry.GetCountry(userHostAddress);
if (code != null)
{
location = Config.Users.GetCountryByCode(code);
}
}
// find english culture for country, if it exists
if (!string.IsNullOrEmpty(location))
{
foreach (CultureInfo ci in CultureInfo.GetCultures(CultureTypes.SpecificCultures))
{
try
{
if (ci.TwoLetterISOLanguageName == "en")
{
RegionInfo ri = new RegionInfo(ci.LCID);
if (location.Contains(ri.EnglishName))
return ci;
}
}
catch (Exception)
{
}
}
}
}
catch (Exception)
{
}
return null;
}
答案 0 :(得分:2)
我不确定我是否正确理解了您的问题,但您可以明确设置format for dates in a culture。
请注意,您需要先克隆CultureInfo
才能设置DateTimeFormat
属性。