System.TimeZone.GetDaylightChanges 方法
方法描述
返回特定年份的夏时制期间。
语法定义(C# System.TimeZone.GetDaylightChanges 方法 的用法)
public abstract DaylightTime GetDaylightChanges( int year )
参数/返回值
参数值/返回值 | 参数类型/返回类型 | 参数描述/返回描述 |
---|---|---|
year | System-Int32 | 要应用夏时制期间的年份。 |
返回值 | System.Globalization.DaylightTime | 一个 System.Globalization.DaylightTime 对象,包含 year 中夏时制的起始和结束日期。 |
提示和注释
每年只支持一个夏时制期间。
由于 TimeZone 类只支持一个夏时制调整规则,因此 GetDaylightChanges 方法会将当前的调整规则应用到任何年份,而无论调整规则是否实际应用于该年份。 假定操作系统本身具有特定年份的准确数据,则通过处理由 TimeZoneInfo.GetAdjustmentRules 方法返回的 TimeZoneInfo.AdjustmentRule 对象的数组可以获得更准确的结果。 Start 、End 和 Delta 这些特性对应于 TimeZoneInfo.AdjustmentRule.DateStart、TimeZoneInfo.AdjustmentRule.DateEnd 和 TimeZoneInfo.AdjustmentRule.DaylightDelta 属性。
如果在当前时区中不使用夏时制,则返回值为 DaylightTime 对象,其中 Start 和 End 的值为 DateTime.MinValue,而 DaylightTime.Delta 的值为初始化为 0 个时钟周期的 TimeSpan。
System.TimeZone.GetDaylightChanges 方法例子
下面的示例使用 GetDaylightChanges 方法,返回所选年份的夏时制长度和偏移量。
// Example of the TimeZone.GetDaylightChanges( int ) method. using System; using System.Globalization; class DaylightChangesDemo { // Get the local time zone and a base local time. static TimeZone localZone = TimeZone.CurrentTimeZone; static void CreateDaylightTime( int year ) { // Create a DaylightTime object for the specified year. DaylightTime daylight = localZone.GetDaylightChanges( year ); // Display the start and end dates and the time change. Console.WriteLine( "{0,-7}{1,-20:yyyy-MM-dd HH:mm}" + "{2,-20:yyyy-MM-dd HH:mm}{3}", year, daylight.Start, daylight.End, daylight.Delta ); } static void Main( ) { const string headFmt = "{0,-7}{1,-20}{2,-20}{3}"; Console.WriteLine( "This example of TimeZone.GetDaylightChanges( int ) " + "generates the \nfollowing output, which varies " + "depending on the time zone in which \nit is run. The " + "example creates DaylightTime objects for specified \n" + "years and displays the start and end dates and time " + "change for \ndaylight saving time.\n" ); // Write a message explaining that start dates prior to 1986 // in the en-US culture may not be correct. if( CultureInfo.CurrentCulture.Name == "en-US" ) { Console.WriteLine( "Note: In the [en-US] culture, all start dates are " + "calculated from \nthe first Sunday in April, " + "based on a standard set in 1986. For \ndates " + "prior to 1986, the calculated start date may not " + "be accurate." ); } Console.WriteLine( "\nLocal time: {0}\n", localZone.StandardName ); Console.WriteLine( headFmt, "Year", "Start", "End", "Change" ); Console.WriteLine( headFmt, "----", "-----", "---", "------" ); CreateDaylightTime( 1960 ); CreateDaylightTime( 1970 ); CreateDaylightTime( 1980 ); CreateDaylightTime( 1990 ); CreateDaylightTime( 2000 ); CreateDaylightTime( 2001 ); CreateDaylightTime( 2002 ); CreateDaylightTime( 2003 ); CreateDaylightTime( 2004 ); CreateDaylightTime( 2005 ); CreateDaylightTime( 2020 ); CreateDaylightTime( 2040 ); } } /* This example of TimeZone.GetDaylightChanges( int ) generates the following output, which varies depending on the time zone in which it is run. The example creates DaylightTime objects for specified years and displays the start and end dates and time change for daylight saving time. Note: In the [en-US] culture, all start dates are calculated from the first Sunday in April, based on a standard set in 1986. For dates prior to 1986, the calculated start date may not be accurate. Local time: Pacific Standard Time Year Start End Change ---- ----- --- ------ 1960 1960-04-03 02:00 1960-10-30 02:00 01:00:00 1970 1970-04-05 02:00 1970-10-25 02:00 01:00:00 1980 1980-04-06 02:00 1980-10-26 02:00 01:00:00 1990 1990-04-01 02:00 1990-10-28 02:00 01:00:00 2000 2000-04-02 02:00 2000-10-29 02:00 01:00:00 2001 2001-04-01 02:00 2001-10-28 02:00 01:00:00 2002 2002-04-07 02:00 2002-10-27 02:00 01:00:00 2003 2003-04-06 02:00 2003-10-26 02:00 01:00:00 2004 2004-04-04 02:00 2004-10-31 02:00 01:00:00 2005 2005-04-03 02:00 2005-10-30 02:00 01:00:00 2020 2020-04-05 02:00 2020-10-25 02:00 01:00:00 2040 2040-04-01 02:00 2040-10-28 02:00 01:00:00 */
异常
异常 | 异常描述 |
---|---|
ArgumentOutOfRangeException | year 小于 1 或大于 9999。 |
版本信息
.NET Framework 受以下版本支持:4、3.5、3.0、2.0、1.1、1.0 .NET Framework Client Profile 受以下版本支持:4、3.5 SP1
适用平台
Windows 7, Windows Vista SP1 或更高版本, Windows XP SP3, Windows XP SP2 x64 Edition, Windows Server 2008(不支持服务器核心), Windows Server 2008 R2(支持 SP1 或更高版本的服务器核心), Windows Server 2003 SP2 .NET Framework 并不是对每个平台的所有版本都提供支持。有关支持的版本的列表,请参见.NET Framework 系统要求。