DaylightTime 类
定义夏时制周期。
**命名空间:**System.Globalization
**程序集:**mscorlib(在 mscorlib.dll 中)
语法
声明
<SerializableAttribute> _
<ComVisibleAttribute(True)> _
Public Class DaylightTime
用法
Dim instance As DaylightTime
[SerializableAttribute]
[ComVisibleAttribute(true)]
public class DaylightTime
[SerializableAttribute]
[ComVisibleAttribute(true)]
public ref class DaylightTime
/** @attribute SerializableAttribute() */
/** @attribute ComVisibleAttribute(true) */
public class DaylightTime
SerializableAttribute
ComVisibleAttribute(true)
public class DaylightTime
备注
夏时制是一年中为利用延长的白昼时间而将时间向前调整(通常为 1 个小时)的周期。该周期结束后,又将时间重新设置为标准时间。
System.TimeZone 类的成员广泛地使用 DaylightTime 类。
示例
下面的代码示例使用 TimeZone.GetDaylightChanges 方法,返回所选年份的夏时制长度和时差。
' Example of the TimeZone.GetDaylightChanges( Integer ) method.
Imports System
Imports System.Globalization
Imports Microsoft.VisualBasic
Module DaylightChangesDemo
' Get the local time zone and a base local time.
Dim localZone As TimeZone = TimeZone.CurrentTimeZone
Sub CreateDaylightTime( year As Integer )
' Create a DaylightTime object for the specified year.
Dim daylight As DaylightTime = _
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 )
End Sub
Sub Main( )
Const headFmt As String = "{0,-7}{1,-20}{2,-20}{3}"
Console.WriteLine( _
"This example of TimeZone.GetDaylightChanges( " & _
"Integer ) generates the " & vbCrLf & "following " & _
"output, which varies depending on the time zone " & _
"in which " & vbCrLf & "it is run. The example " & _
"creates DaylightTime objects for specified " & _
vbCrLf & "years and displays the start and end dates " & _
"and time change for " & vbCrLf & "daylight " & _
"saving time." & vbCrLf )
' 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" Then
Console.WriteLine( _
"Note: In the [en-US] culture, all start dates " & _
"are calculated from " & vbCrLf & "the first " & _
"Sunday in April, based on a standard set in " & _
"1986. For " & vbCrLf & "dates prior to 1986, " & _
"the calculated start date may not be accurate." )
End If
Console.WriteLine( vbCrLf & "Local time: {0}" & vbCrLf, _
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 )
End Sub
End Module
' This example of TimeZone.GetDaylightChanges( Integer ) 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
// 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
*/
// Example of the TimeZone::GetDaylightChanges( int ) method.
using namespace System;
using namespace System::Globalization;
void CreateDaylightTime( int year, TimeZone^ localZone )
{
// 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 );
}
int main()
{
String^ headFmt = "{0,-7}{1,-20}{2,-20}{3}";
// Get the local time zone.
TimeZone^ localZone = TimeZone::CurrentTimeZone;
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.
// ( CultureInfo::CurrentCulture->Name == S"en-US" ) returns False.
if ( CultureInfo::CurrentCulture->Name->CompareTo( "en-US" ) == 0 )
{
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, localZone );
CreateDaylightTime( 1970, localZone );
CreateDaylightTime( 1980, localZone );
CreateDaylightTime( 1990, localZone );
CreateDaylightTime( 2000, localZone );
CreateDaylightTime( 2001, localZone );
CreateDaylightTime( 2002, localZone );
CreateDaylightTime( 2003, localZone );
CreateDaylightTime( 2004, localZone );
CreateDaylightTime( 2005, localZone );
CreateDaylightTime( 2020, localZone );
CreateDaylightTime( 2040, localZone );
}
/*
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
*/
// Example of the TimeZone.GetDaylightChanges( int ) method.
import System.*;
import System.Globalization.*;
class DaylightChangesDemo
{
// Get the local time zone and a base local time.
private static TimeZone localZone = TimeZone.get_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}", new Object[] {
(System.Int32)year, daylight.get_Start(), daylight.get_End(),
daylight.get_Delta() } );
} //CreateDaylightTime
public static void main(String[] args)
{
final 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.get_CurrentCulture().get_Name()
.equalsIgnoreCase("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.get_StandardName());
Console.WriteLine(headFmt, new Object[] { "Year", "Start", "End",
"Change" });
Console.WriteLine(headFmt, new Object[] { "----", "-----", "---",
"------" });
CreateDaylightTime(1960);
CreateDaylightTime(1970);
CreateDaylightTime(1980);
CreateDaylightTime(1990);
CreateDaylightTime(2000);
CreateDaylightTime(2001);
CreateDaylightTime(2002);
CreateDaylightTime(2003);
CreateDaylightTime(2004);
CreateDaylightTime(2005);
CreateDaylightTime(2020);
CreateDaylightTime(2040);
} //main
} //DaylightChangesDemo
/*
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
*/
继承层次结构
System.Object
System.Globalization.DaylightTime
线程安全
此类型的任何公共静态(Visual Basic 中的 Shared)成员都是线程安全的,但不保证所有实例成员都是线程安全的。
平台
Windows 98、Windows 2000 SP4、Windows CE、Windows Millennium Edition、Windows Mobile for Pocket PC、Windows Mobile for Smartphone、Windows Server 2003、Windows XP Media Center Edition、Windows XP Professional x64 Edition、Windows XP SP2、Windows XP Starter Edition
.NET Framework 并不是对每个平台的所有版本都提供支持。有关受支持版本的列表,请参见系统要求。
版本信息
.NET Framework
受以下版本支持:2.0、1.1、1.0
.NET Compact Framework
受以下版本支持:2.0、1.0
请参见
参考
DaylightTime 成员
System.Globalization 命名空间
DateTime
TimeSpan
TimeZone