3

重複の可能性:
C# で DateTime オブジェクトを dd/mm/yyyy に変換する方法は?

私はC#が初めてで、誰かがコードをクリーンアップするのを手伝ってくれることを望んでいました.

DateTime をカスタムイベント文字列に変換する次のメソッドがあります。たとえば30th of Jan 2012、変換されます201201(日は無視されます)。

public ConvertToEventDate(DateTime date)
{   
    var year = date.Year.ToString();
    var month = date.Month.ToString();
    month = month.Length == 2 ? month : "0" + month;
    return year + month;
}

この変換を行うためのより良い方法があるかどうか疑問に思っていました。

4

4 に答える 4

2
public string ConvertToEventDate(DateTime date)
{ 
    return date.ToString("yyyyMM", CultureInfo.InvariantCulture);
} 

カスタム書式設定文字列のドキュメントをご覧ください

于 2012-08-24T11:31:17.407 に答える
2

私はこれをします。

public string ConvertToEventDate(DateTime date)
{   
    return date.ToString("yyyyMM");
}

これを次のように Extension メソッドに入れることもできます。

public static class ExtenstionMethods
{
    public static string ToEventDate(this DateTime date)
    {
        return date.ToString("yyyyMM");
    }
}

そしてそれを ike this と呼びます。

DateTime date = new DateTime(2012, 30, 1);

    date.ToEventDate();

これとは対照的に;

ConvertToEventDate(date);
于 2012-08-24T11:31:22.207 に答える
2

他の人ToString("yyyyMM")は、基本的にそこにあることを示唆していますが、おそらく不変の文化を指定することをお勧めします。そうしないと、スレッドの現在のカルチャが非グレゴリオ暦を使用している場合、予期しない月/年になる可能性があります。だから私は使用します:

string text = date.ToString("yyyyMM", CultureInfo.InvariantCulture);

正確な形式を後で変更する場合は、詳細についてカスタムの日付と時刻の形式文字列のドキュメントを参照してください。

于 2012-08-24T11:34:28.253 に答える
0

試す

return date.ToString("yyyyMM");
于 2012-08-24T11:31:51.697 に答える