【问题标题】:Get only the date from a datetime in c#仅从 c# 中的日期时间获取日期
【发布时间】:2015-08-13 21:21:15
【问题描述】:

我正在尝试在这样的 viewbag 中传递日期

DateTime? DueDate = this.dbContext.OBProcessMonitors.Where(o => o.EmployeeID 
== GlobalVariables.EmployeeID).First().DueDate;
        ViewBag.DueDate = DueDate;

当我在 razor @viewbag.duedate 中调用 viewbag 时,我会得到日期和时间。我怎样才能得到它的日期?

【问题讨论】:

  • if (DueDate.HasValue) ViewBag.DueDate = DueDate.Value.Date;
  • 错误 50 'System.Nullable' 不包含 'Date' 的定义,并且没有扩展方法 'Date' 接受类型为 'System.Nullable' 可以找到
  • 我错过了它可以为空的事实。请查看更新。
  • 如果你想格式化它,不管文化信息如何,你可以使用DueDate.Value.ToString("yyyy-MM-dd");
  • 谢谢雅各布·罗伯茨。这有效

标签: c# asp.net-mvc razor


【解决方案1】:

使用“DueDate.Value.Date”获取日期时间的日期。

【讨论】:

  • 如果我在控制器或剃须刀中执行此操作,它仍会显示日期和时间。
  • DueDate.Value.ToShortDateString()
【解决方案2】:

我假设您需要一个日期字符串,而不是日期对象。跟着做吧

获取短日期字符串:如 en-US 中的“6/15/2009”

Value.ToShortDateString() 

或获取长日期字符串:如“Monday, June 15, 2009”

Value.ToLongDateString()

或者使用自定义格式

Value.ToString("d")

在此处查看其他格式:https://msdn.microsoft.com/en-us/library/az4se3k1(v=vs.110).aspx

【讨论】:

    【解决方案3】:

    您可以将DateTime 转换为字符串并根据需要设置格式:

    ViewBag.TheDate = yourobject.DueDate.ToString("dd/MM/yyyy") //or,
    ViewBag.TheDate = yourobject.DueDate.ToString("MM/dd/yyyy") //or,
    ViewBag.TheDate = yourobject.DueDate.ToString("yyyy/MM/dd") //etc...
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-07-10
      • 2016-11-19
      • 1970-01-01
      • 2019-01-21
      • 2013-11-29
      • 1970-01-01
      • 2013-10-06
      相关资源
      最近更新 更多