日付 (mysql データベースの DateTime) を表す文字列があります。それをMMMM d ,YYYYのようなカスタム形式に変換したい
例えば。11/1/2012 3:42:09 AM を 2012 年 11 月 1 日に変換
月として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");
//To ignore regional settings.
string formattedDateStr = dt.ToString("MMMMM d, yyyy",CultureInfo.InvariantCulture);
これを試してください SELECT DATENAME(MM, GETDATE()) + RIGHT(CONVERT(VARCHAR(12), GETDATE(), 107), 9) AS [Month DD, YYYY]
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");
私の理解では、あなたにはすでに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
);