C# 日期对象与日期时间对象
我目前正在查看date和datetime对象的msdn页面。我还打开了reflector,看起来date和datetime对象只是引用了日期结构。C# 日期对象与日期时间对象,c#,.net,datetime,C#,.net,Datetime,我目前正在查看date和datetime对象的msdn页面。我还打开了reflector,看起来date和datetime对象只是引用了日期结构。 为什么我们有两个引用相同结构的对象?它们之间有什么区别?没有日期类型。只有一种类型是您应该用于任何日期或日期时间数据的。CLR类(例如,datetime,Int32等)包含实际实现。这是你们将在反射器中看到的 由于它们的传统,C#和VB为常用的数据类型定义了某些别名。例如,C中的int是Int32的别名。在VB中,一个这样的别名是Date,用于Dat
为什么我们有两个引用相同结构的对象?它们之间有什么区别?没有日期类型。只有一种类型是您应该用于任何日期或日期时间数据的。CLR类(例如,
datetime
,Int32
等)包含实际实现。这是你们将在反射器中看到的
由于它们的传统,C#和VB为常用的数据类型定义了某些别名。例如,C中的int
是Int32
的别名。在VB中,一个这样的别名是Date
,用于DateTime
以下是这些别名的列表:
Date
struct?从.NET 4开始,DateTimeOffset是表示日期/时间信息的推荐方式。DateTime基本上已被弃用。@MattDavey:[需要引用]:)@Andew Hare为什么:)>“ADateTimeOffset是最常见的日期-时间场景中使用的新的首选类型。”——@MattDavey-非常酷:)但我不认为DateTime的所有使用都应该切换到DateTimeOffset,只是在某些情况下。查看文章底部的“使用指南”。是的,我对DateTime的反对有些过分热情,但仍然有一个地方:)我认为DateTimeOffset尚未被广泛采用的原因是它的名称有点令人困惑。。人们倾向于认为它代表一个日期时间的偏移量(很像TimeSpan),而实际上它代表[date+time+offset]。我认为C中没有date
或DateTime
别名是很奇怪的。