我如何将日期时间转换为C#中的日期
我不能相信这个表面上明显的问题找到答案时失败了多长时间。我如何将日期时间转换为C#中的日期
Date SomeRandomMadeUpDate = DateTime.Now.AddMonths(randomMonths).Date;
Cannot implicitly convert type 'System.DateTime' to 'System.Date' I can even call:
Date.Now
但调用.AddDays
它返回一个DateTime
。
同样,问题是:如何把一个C#DateTime
成C#Date
我不得不看它,因为我没有” t知道.NET 4.0中有一个Date类型,但显然在System.Dataflow.dll中有一个。只需使用构造,以日期时间作为参数:
Date d = new Date(dt);
没有“日期”类型等。这都是日期时间。只是当你打电话给.Date时,那天你会得到那个DateTime。
如果你在谈论VB.NET中的“Date”数据类型,那就是DateTime,不管你信不信。
那么为什么我会得到我收到的错误? – thepaulpage 2009-12-29 16:32:13
不知道,我只是在VB中试过它,它没有任何问题... – 2009-12-29 16:34:42
我试过它在C#中没有System.Date类型... – 2009-12-29 16:39:18
.NET没有代表日期的类型 - 这样的问题使我开始Noda Time(它甚至还没有准备好用于生产)。
DateTime.Date
返回与原始日期相同的另一个DateTime
,但在午夜。这基本上是最接近有一个Date
类型在.NET :(请注意,如果你想今天的日期,那么DateTime.Today
是调用DateTime.Now.Date
的一个简单的方法。
我不知道为什么编译器给了一个错误这表明,有消息是一个System.Date
型 - 它没有我的机器上:
using System;
class Test
{
static void Main()
{
Date today = DateTime.Now.Date;
}
}
给出了这样的错误:
Test.cs(7,9): error CS0246: The type or namespace name 'Date' could not be found (are you missing a using directive or an assembly reference?)
你可以给出一个类似的简短但完整的程序,它显示你收到的错误信息?你有其他一些库参考哪个确实有一个System.Date
类型? (汤米CARLIER暗示,也许System.Dataflow
?)
System.Dataflow.dll(SQL Server建模的一部分)有一个System.Date类型。 – 2009-12-29 16:36:44
@Tommy:那是我的怀疑(见编辑:) - 这真是太可怕了。某些特定于SQL Server的应该不会对“System”名称空间起作用: – 2009-12-29 16:37:25
@Tommy:不是这样的。 – 2009-12-29 16:44:39
您可以从一个DateTime
对象构造一个新的Date
对象:
Date d = new Date(DateTime.Now);
见http://msdn.microsoft.com/en-us/library/system.date.date(VS.85).aspx
尝试做以下
string onlyDate = DateTime.Now.ToString("dd/MM/yyyy");
这将只返回日期作为字符串,所以我认为你可以使用它作为
Date dateNow = new Date(onlyDate);
是的。好的工作,并且非常感谢。现在我知道更多! – thepaulpage 2009-12-29 16:50:47