生成en-us格式的日期字符串的代码如下:我想传入LCID(或本地化语言的等效值)以生成日期字符串的本地化版本。我该如何做到这一点?
public static string ConvertDateTimeToDate(string dateTimeString) {
CultureInfo culture = CultureInfo.InvariantCulture;
DateTime dt = DateTime.MinValue;
if (DateTime.TryParse(dateTimeString, out dt))
{
return dt.ToShortDateString();
}
return dateTimeString;
}
您可以使用toString函数的第二个参数,并使用您需要的任何语言/文化…
您可以根据MSDN使用"d"格式代替ToShortDateString
…
所以基本上像这样返回为澳大利亚英语:
CultureInfo enAU = new CultureInfo("en-AU");
dt.ToString("d", enAU);
您可以修改您的方法,将语言和文化作为参数包含
public static string ConvertDateTimeToDate(string dateTimeString, String langCulture) {
CultureInfo culture = new CultureInfo(langCulture);
DateTime dt = DateTime.MinValue;
if (DateTime.TryParse(dateTimeString, out dt))
{
return dt.ToString("d",culture);
}
return dateTimeString;
}
编辑
如果您需要针对特定语言/文化解析字符串,您可能还需要查看重载的tryParse方法…
使用ToString()
重载而不是ToShortDateString()
方法。供给IFormatProvider
这应该有助于形成特定的日期-时间字符串:
http://www.csharp-examples.net/string-format-datetime/这应该有助于解决本地化问题:
如何处理本地化/CultureInfo