1

日時の値をこの形式 ("yyyy/MM/dd") でフォーマットしたい

以下はコードです、mはそうするために使用します

DateTime? date = DateTime.Now;
DateTime? formattedDate = Convert.ToDateTime(date.Value.ToString("yyyy/MM/dd"));
Console.WriteLine(formattedDate);
Console.ReadLine();

コードは正常に動作しますが、上記のコードでは、datetime 変数を null として宣言しているため、逆に問題が発生していることがわかります。

上記のコードで私が間違っていることを提案してください。

私はこのように出力を得ているので9/10/2012 12:00:00 AM

ありがとう、アーマン

4

1 に答える 1

6

問題は、呼び出すものformattedDateが実際には DateTime の別のインスタンスであることです。ネイティブの .NET DateTime 構造内には形式の概念はありません。文字列に変換する場合にのみ、フォーマットについて話すことができます。

DateTime date = DateTime.Now;
string formattedDate = date.ToString("yyyy/MM/dd"));
Console.WriteLine(formattedDate);

または、null 許容の DateTime を使用する場合:

DateTime? date = DateTime.Now;
string formattedDate = date.Value.ToString("yyyy/MM/dd"));
Console.WriteLine(formattedDate);

しかし、あなたの質問は でタグ付けされているasp.net-mvc-3ため、値をフォーマットする他の方法があります。たとえば[DisplayFormat]、ビュー モデルで属性を使用すると、次のようになります。

[DisplayFormat(DataFormatString = "{0:yyyy/MM/dd}", ApplyFormatInEditMode = true)]
public DateTime? Date { get; set; }

ビューモデルの値を表示する場合は、ビューで:

@Html.DisplayFor(x => x.Date)

または、適切にフォーマットされた値で入力フィールドを生成する場合:

@Html.EditorFor(x => x.Date)
于 2012-09-10T07:28:36.407 に答える