【问题标题】:Is there a way to format a date time object?有没有办法格式化日期时间对象?
【发布时间】:2014-09-09 23:27:31
【问题描述】:

上周,我们的应用程序的工作方式是后端团队将日期存储为 YYYY-MM-DD 格式的字符串。本周,他们将其更改为 DateTime 对象而不是字符串。所以现在我只是从我们使用的这个特定 DateTime 控件上的字符串值创建一个 DateTime 对象。

所以基本上使用我们的自定义控件,它是这样的:

mySearchModelObject.fromDate = myDateRangeControl.Values[0]; //string
mySearchModelObject.toDate = myDateRangeControl.Values[1]; //string

现在更像这样:

DateTime fromDate, toDate;
DateTime.Tryparse(myDateRangeControl.Values[0], out fromDate);
DateTime.Tryparse(myDateRangeControl.Values[1], out toDate);

mySearchModelObject.fromDate = fromDate;
mySearchModelObject.toDate = toDate;

但是使用与上周相同的日期范围进行搜索会从数据库中得到不同的结果。

我想知道是不是因为我们的日期是“YYYY-MM-DD”作为字符串,但现在它得到了一个日期时间对象,无论系统格式是+时间本身。

那么有没有办法格式化我的 DateTime 对象以使其仍然具有相同的 YYYY-MM-DD 格式?

【问题讨论】:

    标签: c# datetime .net-3.5 format


    【解决方案1】:

    使用 DateTime.TryParseExact 并提供“yyyy-MM-dd”作为格式字符串。

    http://msdn.microsoft.com/en-us/library/h9b85w22

    【讨论】:

      【解决方案2】:

      您可以使用fromDate.ToString("yyyy-MM-dd") 将日期格式化为 YYYY-MM-DD

      standardcustom 日期时间格式上查看msdn

      查看演示https://dotnetfiddle.net/NZz0HG

      如果mySearchModelObject.fromDate 是对象类型,您可以分配日期时间或字符串,不会出现编译器警告/错误。 但是当使用时,也许使用mySearchModelObject.fromDate.ToString() 你会得到不同的结果,之前是'2014-12-31',现在是12/31/2014 12:00:00 AM

      【讨论】:

      • 我认为可能有误会; mySearchModelObject 字段现在是 DateTime,所以像以前一样将其转换为字符串是无效的。
      • 啊好吧,顺便说一句,不检查结果代码就不要使用 TryParse。使用Parse(如果无法解析则抛出异常)否则你不知道解析是否正常(并且fromDate是默认日期)
      • 我无法从我的远程连接复制粘贴到我发这篇文章的实际 PC,它更像是 IF (tryParse...) { 赋值}。留下它只是因为它打字更短。不过谢谢:)
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-12-26
      • 2020-05-27
      • 1970-01-01
      相关资源
      最近更新 更多