1

「2013 年 7 月 7 日」のような文字列形式 (つまり、オランダ語) の日付があります。英語形式に変換したい。"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); 

最初に文字列を に変換しDateTime、次に . !ToString_DateTime

そして、一般的に、Convert.ToDateTime英語のみを使用するのは誤りです。Convert.ToDateTime(string, IFormatProvider)あなたが使用したオーバーロードはあなたのPCの現在の文化を使用しています(私のPCではイタリア語を使用しています)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 に答える