C# DateTime.AddDays与Calendar.AddDays

C# DateTime.AddDays与Calendar.AddDays,c#,.net,datetime,calendar,globalization,C#,.net,Datetime,Calendar,Globalization,DateTime.AddDays和Calendar.AddDays之间有什么区别? DateTimetype calendar independent吗?据我所知的calendar.AddDays方法返回一个DateTime对象并调用其函数。我认为DateTime是硬编码的,可以有效地使用公历 例如,如果您查看它,则假定有12个月,而支持13个月 编辑:DateTime的某些方面确实适用于其他日历,例如。然而,我相信它只是将其转换为公历: Calendar calendar = new Hebr

DateTime.AddDays
Calendar.AddDays
之间有什么区别?

DateTime
type calendar independent吗?

据我所知的
calendar.AddDays
方法返回一个
DateTime
对象并调用其函数。

我认为
DateTime
是硬编码的,可以有效地使用公历

例如,如果您查看它,则假定有12个月,而支持13个月

编辑:
DateTime
的某些方面确实适用于其他日历,例如。然而,我相信它只是将其转换为公历:

Calendar calendar = new HebrewCalendar();
DateTime dt = new DateTime(5901, 13, 1, 0, 0, 0, calendar); // Uses month 13!
Console.WriteLine(dt.Year); // 2141
Console.WriteLine(dt.Month); // 9

DateTime.AddDays仅将天转换为刻度,并将此刻度数添加到日期时间。Calendar.AddDays的默认实现与此完全相同。但是,由于它是一种虚拟方法,因此可以在特定的日历中以更复杂的方式实现,例如,类似这样的方式:

这个问题的答案非常容易回答。这两种功能之间没有区别

也是约会时间

DateTime不扩展该特定功能,它只使用UTC和本地时间。您还应该建议日历不是DateTime对象,它的行为可能不同,并且似乎没有提供获取当前系统时间的方法。


编辑-我最初以为您在谈论Web控件,这似乎是一个全球化,允许您显示给定用户群的当前日期和时间,并执行其声明的操作系统设置。

谢谢。反射器显示它们使用calendar.ToDateTime(年、月、日、小时、分钟、秒、0)。构造函数中的刻度。