2017-05-18 2 views
-2

文字列dd-mm-yyyyMM/dd/yyyyに変換しようとしています。私はさまざまな方法で試しましたが、何も効果がありません。現在のロジックは次のとおりです。C#でdd-mm-yyyy形式をMM/dd/yyyyに変換するには?

string convertDate = DateTime.ParseExact(date, "dd-mm-yyyy", CultureInfo.InvariantCulture) 
         .ToString("MM/dd/yyyy",CultureInfo.InvariantCulture); 

予想通りに日付が変換されません。これは月の場所に月を置き、月を12に設定した場合は月を01に設定します。

+9

「mm」と「MM」の両方を使用するのは奇妙ではありませんか? –

答えて

4

構文解析と書式指定の両方で「月」を表すには、一貫してMMを使用する必要があります。あなたは、私はおそらく、単純にDateTimeオブジェクトに.ToString()メソッドを使用しないだろう何のDateTimeを、フォーマットしたい場合はhttp://rextester.com/KNA28139

-1

string convertDate = DateTime.ParseExact(date, "dd-MM-yyyy", CultureInfo.InvariantCulture) 
        .ToString("MM/dd/yyyy",CultureInfo.InvariantCulture); 

ライブ例(!mmは「分」を意味します)そしてその後、このようなように、新しい行に文化を変更:

Thread.CurrentThread.CurrentUICulture = Thread.CurrentThread.CurrentUICulture = new CultureInfo("en-US"); 
Thread.CurrentThread.CurrentCulture = Thread.CurrentThread.CurrentCulture = new CultureInfo("en-US"); 

var date = DateTime.Now.ToString("MM/dd/yyyy"); 
+0

私はOPの質問の実際の間違いを逃したと思います。それは間違っていた出力ではなく、入力でした。 – Jamiec

+0

ああ、この場合、この解決法はあまり効果がありません。知らせてくれてありがとうございます! @Jamiec – Xariez

0

ミリメートルは0パディングと分を意味するので、あなたはdd-mm-yyyyからdd-MM-yyyyにごParseExactパターンを変更する必要があります。そうすれば、あなたのコードはあなたの目的に合ったものになります。以下のコードを試すことができます。

string date = "18-05-2017"; 
string convertDate = DateTime.ParseExact(date, "dd-MM-yyyy", CultureInfo.InvariantCulture).ToString("MM/dd/yyyy",CultureInfo.InvariantCulture); 
Console.WriteLine(convertDate); 
関連する問題