2013-04-19 7 views
9

で結果私はDateTimeオブジェクトを取るコンストラクタを持っている:呼び出しのToString(「YYYY-MM-DD」)間違った日付形式

public Report(DateTime date, string start = "0", string end = "0") 
{ 
    Logger.Info("Creating a new Report..."); 

    StartTime = start; 
    EndTime = end; 
    Date = date.ToString("YYYY-mm-dd"); 

    SetStartEndTimes(); 

    Logger.Info("Report Created"); 
} 

さて、これはわずか3日前に罰金働いていました。しかし、私は休憩の後、今日戻ってきて、これは私が見ている結果である:

enter image description here

をあなたが見ることができるように、中に渡される日付が正しいです。しかし、フォーマットの後では、そうではありません。再び、これは私の休憩の前に働いた。私は戻って来て、私はこれを得る。何か不足していますか?なぜそれは最初から作業後に間違ってフォーマットされますか?

EDIT

みんなありがとう。厄介な部分は、以前のバージョンでソースコントロールを見ている、これは働いた。それとも、私はそれが働いていると想像しました。知りません。しかし、これは約3ヶ月間この方法でした。

+1

小文字 "m" は分ではなく、月を表します!大文字の「Y」は小文字の「y」です。 –

+0

YYYYは有効ではありません。それはyyyyです。そして、mmは*分*なので、あなたは上記の49を示しています。そのMMを作成します。 – itsmatt

答えて

17

年は小文字と大文字の月である必要があります。

Date = date.ToString("yyyy-MM-dd"); // btw, lowercase mm means minutes 

Custom Date and Time Format Strings

+0

私にはうまく見えます... –

+1

@Timあなたは、変数が命名されていないという事実を指していますか?私はほとんどそれがdownvoteの価値があると思う。 –

+0

@JohnWillemseそれは問題ありません。それだけでは行は正しくありませんが、 'Date'はプロパティとして宣言されています。構文強調表示は 'Date'プロパティではなく' Date'タイプのように見えます。どちらの方法であれ、質問に答えられました。 –

7

この:

Date = date.ToString("YYYY-mm-dd"); 

はこのことする必要があります

Date = date.ToString("yyyy-MM-dd"); 

小文字mmはあなたの分を与えます。

+0

これは 'YYYY-02-19'または類似の結果になります –

+1

大文字のYは間違っています! –

+0

@JohnWillemseもういない! – DGibbs

関連する問題