当前位置: 首页 > 编程语言 > C#

如何检查给定日期是否为DST日期?分享

时间:2023-04-10 15:04:14 C#

如何判断给定的日期是否为夏令时?我有一个日期作为字符串。没有时间信息。例如。"20131031"ie)November31,2013。我想验证一下是不是夏令时的日期?西欧。ie)是否有用于c#的API,比如DST日期?对于10月的最后一个星期日和3月的最后一个星期日,我只想要一个布尔值作为回报。这是调整时钟的日期。是的,有一个API:TimeZone.GetDaylightChangeshttp://msdn.microsoft.com/en-us/library/system.timezone.getdaylightchanges.aspx你提供了一年,它返回一个带有夏令时的DaylightTime对象开始和结束日期。然后,您可以将您的日期与这两个日期进行比较,以确定它是否是DLS日期。虽然这个答案被接受,但请参阅下面的MattJohnson的答案,详细说明为什么它不是最佳答案以及为什么应该使用TimeZoneInfo类。https://stackoverflow.com/a/19523173/7122perMSDNdocs重要尽可能使用TimeZoneInfo类而不是TimeZone类。您应该考虑使用时区。相反,您可以像这样检查本地时区的DST:DateTimedt=newDateTime(2013,10,31);TimeZoneInfotzi=TimeZoneInfo.Local;boolisDST=tzi.IsDaylightSavingTime(dt);对于特定时区,请执行以下操作:DateTimedt=newDateTime(2013,10,31);TimeZoneInfotzi=TimeZoneInfo.FindSystemTimeZoneById("西欧标准时间");boolisDST=tzi.IsDaylightSavingTime(dt);如果您想知道白天时段的开始和停止时间,您必须使用tzi.GetAdjustmentRules()完成转换规则。但这可能会变得有点复杂。您最好使用NodaTime。您可以使用TimeZone.IsDaylightSavingTime方法,该方法采用DateTime:publicvirtualboolIsDaylightSavingTime(DateTimetime)例如:vartz=TimeZone.CurrentTimeZone;varis_dst=tz.IsDaylightSavingTime(DateTime.Now);有关详细信息,请参阅MSDN。以上是C#学习教程:如何判断给定日期是否为夏令时?如果所有分享的内容对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处: