我有一个字符串格式的日期(即荷兰语),例如“7 juli 2013”。我想把它转换成英文格式。“Convert.toDateTime(strValue) 抛出异常,因为它只转换英文格式。我也试试这个
string strValue = "7 juli 2013";
CultureInfo ci = new CultureInfo("en-US");
strValue = strValue.ToString(ci);
但这不起作用。转换它的方法是什么?
string strValue = "7 juli 2013";
// Convert to DateTime
CultureInfo dutch = new CultureInfo("nl-NL", false);
DateTime dt = DateTime.Parse(strValue, dutch);
// Convert the DateTime to a string
CultureInfo ci = new CultureInfo("en-US", false);
strValue = dt.ToString("d MMM yyyy", ci);
您首先将字符串转换为 a DateTime
,然后 . !ToString
_DateTime
而且,一般来说,Convert.ToDateTime
只使用英语是错误的。您使用的重载使用您电脑的当前文化(所以在我的电脑上它使用意大利语),并且有Convert.ToDateTime(string, IFormatProvider)
一个接受CultureInfo
.
多语言...但请注意,这是错误的!你不能确定一个词在不同的地方没有不同的含义!!!
// The languages you want to recognize
var languages = new[] { "nl-NL", "it-IT" };
DateTime dt = DateTime.MinValue;
bool success = false;
foreach (var lang in languages)
{
if (DateTime.TryParse(strValue, new CultureInfo(lang, false), DateTimeStyles.AssumeLocal, out dt))
{
success = true;
break;
}
}
if (success)
{
CultureInfo ci = new CultureInfo("en-US", false);
strValue = dt.ToString("d MMM yyyy", ci);
}