1

日付 (mysql データベースの DateTime) を表す文字列があります。それをMMMM d ,YYYYのようなカスタム形式に変換したい

例えば。11/1/2012 3:42:09 AM を 2012 年 11 月 1 日に変換

4

4 に答える 4

5

月として11月が必要なので、使用DateTime.ParseExactして後で日付をフォーマットすることができます.ToString

string str = "11/1/2012 3:42:09 AM";
DateTime dt = DateTime.ParseExact(str, "MM/d/yyyy h:mm:ss tt",CultureInfo.InvariantCulture);
string formattedDateStr = dt.ToString("MMMMM d, yyyy");

編集:(@Martin Liversageのコメントから

//To ignore regional settings. 
string formattedDateStr = dt.ToString("MMMMM d, yyyy",CultureInfo.InvariantCulture);
于 2012-11-01T11:23:08.680 に答える
3

これを試してください SELECT DATENAME(MM, GETDATE()) + RIGHT(CONVERT(VARCHAR(12), GETDATE(), 107), 9) AS [Month DD, YYYY]

于 2012-11-01T11:29:36.513 に答える
2

ParseそれをDateTimeオブジェクトにしてから、次のように呼び出しますToString

string myDate = "11/1/2012 3:42:09 AM";
string formatted = DateTime.Parse(myDate).ToString("MMMM d ,yyyy");

使用しているマシンが と同じカルチャを持っていない場合myDate(たとえば、日を最初にするヨーロッパの日付形式を使用している場合)、次のように入力形式を指定することもできますParseExact

string formatted = DateTime.ParseExact(myDate, "M/d/yyyy h:mm:ss tt", CultureInfo.InvariantCulture).ToString("MMMM d ,yyyy");
于 2012-11-01T11:23:04.753 に答える
2

私の理解では、あなたにはすでにDateTime価値があります。目的の文字列に変換するには、次の形式を使用できます。

dateTime.ToString("MMMM d, yyyy", CultureInfo.InvariantCulture)

の使用に注意してくださいCultureInfo.InvariantCulture。これにより、インバリアント カルチャはアメリカ カルチャに基づいているため、英語の月名が使用されます。それ以外の場合は、現在のカルチャが使用され、異なる月名を持つ可能性があります。

String日付がではなくとしてデータベースから取得される場合は、DateTime最初に文字列を解析する必要があります。

var dateTime = DateTime.ParseExact(
  str,
  "MM/d/yyyy h:mm:ss tt", 
  CultureInfo.InvariantCulture
);
于 2012-11-01T11:23:12.823 に答える