1

「dd.MM.yyyy」(例:「01.02.2004」)の形式の日付文字列があり、String.Format(...)またはDateTime.ParseExactを使用して「yyyy-MM-dd」に変換したい(...)またはwhatelse。実際、私は例外しか受けません。したがって、次のコードの使用法は機能しません。

String dateString = "01.02.2004";
datestring = String.Format("{yyyy-MM-dd}", dateString);

何が問題なのですか?代替手段はあり DateTime.ParseExact(..)ますか?

4

5 に答える 5

4

に解析してから、別の形式でDateTime呼び出す必要があります。ToString()

DateTime date = DateTime.ParseExact(dateString, "dd.MM.yyyy", CultureInfo.InvariantCulture);
date.ToString("yyyy-MM-dd")
于 2013-02-11T14:40:54.130 に答える
2

最初にDatetimeオブジェクトを作成する必要があります。

次のようなものを試してください:

DateTime t = DateTime.parse("01.02.2004");
String result = t.ToString("{yyyy-MM-dd}", CultureInfo.InvariantCulture);
于 2013-02-11T14:42:45.973 に答える
1
String dateString = "01.02.2004";
dateString = DateTime.ParseExact(dateString, "dd.MM.yyyy", CultureInfo.InvariantCulture)
                     .ToString("yyyy-MM-dd");

あなたの試みの何が問題になっていますか:

  • フォーマット文字列を使用する場合、アイテムは。のようなフォーマットでリストする必要があります{0:yyyy-MM-dd}0:が必要です。
  • string.Format()を使用している場合、変数はastringであるため、フォーマット文字列yyyy-MM-ddには意味がありません。
于 2013-02-11T14:42:50.140 に答える
1

String.Formatの引数として文字列を解析していますか?あなたはそれから何を期待しますか?

次のようなことをする必要があります。

try
{
 var date = DateTme.ParseExact("yyyy.MM.dd", dateString, CultureInfo.InvariantCulture);
 var result = date.ToString("yyyy-MM-dd");
}
catch(Exception e) { /* ... */}
于 2013-02-11T14:43:11.383 に答える
1

DateTime適切な で最初に変換する必要がありますCultureInfo:

String dateString = "01.02.2004";
var deCulture = System.Globalization.CultureInfo.CreateSpecificCulture("de-DE");
DateTime dt = DateTime.Parse(dateString, deCulture);
dateString = dt.ToString("yyyy-MM-dd"); 

デモ

于 2013-02-11T14:42:05.723 に答える