将日期分配给日期时间 [关闭]
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 addSystem.Date
as a data type to .NET Framework。【参考方案3】:
如果您只想要一个带有日期部分的DateTime
,您可以拨打someDateTimeVariable.Date
。时间将始终设置为 something,但如果时间不重要,则将其设置为午夜是标准的。
在你的例子中,你可能只是这样做
DateTime dt = date.Date;
【讨论】:
这如何只带回日期..?它仍然在 dt 对象中有 Time 部分.. @MethodMan 是的,但时间是午夜。文档here.以上是关于将日期分配给日期时间 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章
仅从日期时间字段(mysql)中提取日期并将其分配给 php 变量