将日期分配给日期时间 [关闭]

Posted

技术标签:

【中文标题】将日期分配给日期时间 [关闭]【英文标题】:Assgin Date To DateTime [closed] 【发布时间】:2015-06-15 20:12:28 【问题描述】:

我只想将日期分配给 DateTime 变量 并且 DateTime 变量应该只保存日期。

var date = DateTime.Now.Date;
DateTime dt= date;

dt 应该只保存日期

我该怎么做

【问题讨论】:

DateTime always 包含时间组件,无法在其中仅存储日期。您可以使用构造函数DateTime dt = new DateTime(year, month, day) 创建一个新的DateTime,但它将包含午夜的时间。 它太糟糕了....我真的需要它 尝试在 DateTime 上查看 MSDN,以了解您可以访问哪些其他属性的示例。关于文档,这非常简单 解释为什么你“真的需要它”。解释你需要它做什么。你有一个 XY 问题,X 是你需要这个的原因,而 Y 是“我知道,我会在没有时间的情况下使用 DateTime”。后者是不可能的, DateTime always 有一个时间部分,所以请解释你原来的问题 X,我相信有一个更简单的解决方案。也许DateTime.ToString(string format) 会做你想做的事。 再一次,你不能。解释你为什么要这样做。 【参考方案1】:

也许你对DateTime.Today感到满意:

DateTime today = DateTime.Today; 

设置为今天日期的对象,时间组件设置为 00:00:00。

如果您想要任何DateTime 的日期,您可以使用Date property:

DateTime dateOfDateTime = DateTime.Now.Date;

与此实例具有相同日期和时间值的新对象 设置为午夜 12:00:00 (00:00:00)。

Datetime 始终包含时间部分。您可以使用DateTime.ToShortDateString 来显示它没有时间:

string dateOnly = Date.Today.ToShortDateString();

【讨论】:

我不想今天我需要任何日期时间变量 你是什么意思你需要任何日期时间变量..举个例子@peter_2011 @peter_2011:您可以使用DateTime.Date 获取时间部分被“截断”的日期时间。我已经编辑了我的答案。 就像我之前写的例子一样 @peter_2011 您之前的示例不起作用。我建议您抽出时间阅读文档并了解 DateTime 结构的工作原理。【参考方案2】:

正如其他答案中所述,DateTime 将始终包含日期和时间部分(即使时间部分设置为 00:00:00)。

如果出于任何不适合您的原因,您可以随时查看第三方日期和时间 API。

Noda Time 您可能特别感兴趣,它包含一个结构,其中只有日期部分。

LocalDate 是一个不可变结构,表示日历中的日期,不引用特定时区或一天中的时间。

【讨论】:

好推荐。同样沿着这个思路,我正在研究proposal to add System.Date as a data type to .NET Framework。【参考方案3】:

如果您只想要一个带有日期部分的DateTime,您可以拨打someDateTimeVariable.Date。时间将始终设置为 something,但如果时间不重要,则将其设置为午夜是标准的。

在你的例子中,你可能只是这样做

DateTime dt = date.Date;

【讨论】:

这如何只带回日期..?它仍然在 dt 对象中有 Time 部分.. @MethodMan 是的,但时间是午夜。文档here.

以上是关于将日期分配给日期时间 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

如何将昨天的日期分配给参数C#

仅从日期时间字段(mysql)中提取日期并将其分配给 php 变量

SQL 将数字分配给日期,按值分组

将oracle日期分配给SSIS变量

打字稿 - 类型'值:数字;日期:日期; ' 不可分配给类型 'Record[]'。 ts(2322)

如何将日期分配给defaultDate?