1

我有一个字符串格式的日期(即荷兰语),例如“7 juli 2013”​​。我想把它转换成英文格式。“Convert.toDateTime(strValue) 抛出异常,因为它只转换英文格式。我也试试这个

   string strValue =   "7 juli 2013";

   CultureInfo ci = new CultureInfo("en-US");
   strValue = strValue.ToString(ci);  

但这不起作用。转换它的方法是什么?

4

1 回答 1

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); 

您首先将字符串转换为 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);
}
于 2013-09-06T10:33:40.533 回答