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);

或者,如果您想使用可为空的 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 回答