我有一个字符串格式的日期(即荷兰语),例如" 7 juli 2013"。我想用英文格式转换它。 " Convert.toDateTime(strValue)抛出异常,因为它只转换英文格式。我也试试这个
string strValue = "7 juli 2013";
CultureInfo ci = new CultureInfo("en-US");
strValue = strValue.ToString(ci);
但这不起作用。转换它的方法是什么?
答案 0 :(得分:8)
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);
您首先将字符串转换为DateTime
,然后转换为ToString
DateTime
!
而且,一般来说,Convert.ToDateTime
仅使用英语是错误的。您使用的重载使用了PC的当前文化(因此在我的电脑上它使用意大利语),并且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);
}