TimeZoneInfo.AdjustmentRule 클래스
정의
일광 절약 시간 전환과 같은 표준 시간대 조정에 대한 정보를 제공합니다.Provides information about a time zone adjustment, such as the transition to and from daylight saving time.
public: ref class TimeZoneInfo::AdjustmentRule sealed : IEquatable<TimeZoneInfo::AdjustmentRule ^>, System::Runtime::Serialization::IDeserializationCallback, System::Runtime::Serialization::ISerializable
public sealed class TimeZoneInfo.AdjustmentRule : IEquatable<TimeZoneInfo.AdjustmentRule>, System.Runtime.Serialization.IDeserializationCallback, System.Runtime.Serialization.ISerializable
[System.Serializable]
public sealed class TimeZoneInfo.AdjustmentRule : IEquatable<TimeZoneInfo.AdjustmentRule>, System.Runtime.Serialization.IDeserializationCallback, System.Runtime.Serialization.ISerializable
type TimeZoneInfo.AdjustmentRule = class
interface IEquatable<TimeZoneInfo.AdjustmentRule>
interface IDeserializationCallback
interface ISerializable
type TimeZoneInfo.AdjustmentRule = class
interface IDeserializationCallback
interface ISerializable
interface IEquatable<TimeZoneInfo.AdjustmentRule>
[<System.Serializable>]
type TimeZoneInfo.AdjustmentRule = class
interface IEquatable<TimeZoneInfo.AdjustmentRule>
interface ISerializable
interface IDeserializationCallback
Public NotInheritable Class TimeZoneInfo.AdjustmentRule
Implements IDeserializationCallback, IEquatable(Of TimeZoneInfo.AdjustmentRule), ISerializable
- 상속
-
TimeZoneInfo.AdjustmentRule
- 특성
- 구현
예제
다음 예에서는 로컬 시스템에 정의 된 모든 표준 시간대를 검색 하 고 해당 조정 규칙에 대 한 전체 정보를 표시 합니다.The following example retrieves all time zones defined on the local system and displays complete information about their adjustment rules.
private enum WeekOfMonth
{
First = 1,
Second = 2,
Third = 3,
Fourth = 4,
Last = 5,
}
private static void ShowStartAndEndDates()
{
// Get all time zones from system
ReadOnlyCollection<TimeZoneInfo> timeZones = TimeZoneInfo.GetSystemTimeZones();
string[] monthNames = CultureInfo.CurrentCulture.DateTimeFormat.MonthNames;
// Get each time zone
foreach (TimeZoneInfo timeZone in timeZones)
{
TimeZoneInfo.AdjustmentRule[] adjustments = timeZone.GetAdjustmentRules();
// Display message for time zones with no adjustments
if (adjustments.Length == 0)
{
Console.WriteLine("{0} has no adjustment rules", timeZone.StandardName);
}
else
{
// Handle time zones with 1 or 2+ adjustments differently
bool showCount = false;
int ctr = 0;
string spacer = "";
Console.WriteLine("{0} Adjustment rules", timeZone.StandardName);
if (adjustments.Length > 1)
{
showCount = true;
spacer = " ";
}
// Iterate adjustment rules
foreach (TimeZoneInfo.AdjustmentRule adjustment in adjustments)
{
if (showCount)
{
Console.WriteLine(" Adjustment rule #{0}", ctr+1);
ctr++;
}
// Display general adjustment information
Console.WriteLine("{0} Start Date: {1:D}", spacer, adjustment.DateStart);
Console.WriteLine("{0} End Date: {1:D}", spacer, adjustment.DateEnd);
Console.WriteLine("{0} Time Change: {1}:{2:00} hours", spacer,
adjustment.DaylightDelta.Hours, adjustment.DaylightDelta.Minutes);
// Get transition start information
TimeZoneInfo.TransitionTime transitionStart = adjustment.DaylightTransitionStart;
Console.Write("{0} Annual Start: ", spacer);
if (transitionStart.IsFixedDateRule)
{
Console.WriteLine("On {0} {1} at {2:t}",
monthNames[transitionStart.Month - 1],
transitionStart.Day,
transitionStart.TimeOfDay);
}
else
{
Console.WriteLine("The {0} {1} of {2} at {3:t}",
((WeekOfMonth)transitionStart.Week).ToString(),
transitionStart.DayOfWeek.ToString(),
monthNames[transitionStart.Month - 1],
transitionStart.TimeOfDay);
}
// Get transition end information
TimeZoneInfo.TransitionTime transitionEnd = adjustment.DaylightTransitionEnd;
Console.Write("{0} Annual End: ", spacer);
if (transitionEnd.IsFixedDateRule)
{
Console.WriteLine("On {0} {1} at {2:t}",
monthNames[transitionEnd.Month - 1],
transitionEnd.Day,
transitionEnd.TimeOfDay);
}
else
{
Console.WriteLine("The {0} {1} of {2} at {3:t}",
((WeekOfMonth)transitionEnd.Week).ToString(),
transitionEnd.DayOfWeek.ToString(),
monthNames[transitionEnd.Month - 1],
transitionEnd.TimeOfDay);
}
}
}
Console.WriteLine();
}
}
Private Enum WeekOfMonth As Integer
First = 1
Second = 2
Third = 3
Fourth = 4
Last = 5
End Enum
Private Sub ShowStartAndEndDates()
' Get all time zones from system
Dim timeZones As ReadOnlyCollection(Of TimeZoneInfo) = TimeZoneInfo.GetSystemTimeZones()
' Get each time zone
For Each timeZone As TimeZoneInfo In timeZones
Dim adjustments() As TimeZoneInfo.AdjustmentRule = timeZone.GetAdjustmentRules()
' Display message for time zones with no adjustments
If adjustments.Length = 0 Then
Console.WriteLine("{0} has no adjustment rules", timeZone.StandardName)
Else
' Handle time zones with 1 or 2+ adjustments differently
Dim showCount As Boolean = False
Dim ctr As Integer = 0
Dim spacer As String = ""
Console.WriteLine("{0} Adjustment rules", timeZone.StandardName)
If adjustments.Length > 1 Then showCount = True : spacer = " "
' Iterate adjustment rules
For Each adjustment As TimeZoneInfo.AdjustmentRule in adjustments
If showCount Then
Console.WriteLine(" Adjustment rule #{0}", ctr+1)
ctr += 1
End If
' Display general adjustment information
Console.WriteLine("{0} Start Date: {1:D}", spacer, adjustment.DateStart)
Console.WriteLine("{0} End Date: {1:D}", spacer, adjustment.DateEnd)
Console.WriteLine("{0} Time Change: {1}:{2:00} hours", spacer, _
adjustment.DaylightDelta.Hours, adjustment.DaylightDelta.Minutes)
' Get transition start information
Dim transitionStart As TimeZoneInfo.TransitionTime = adjustment.DaylightTransitionStart
Console.Write("{0} Annual Start: ", spacer)
If transitionStart.IsFixedDateRule Then
Console.WriteLine("On {0} {1} at {2:t}", _
MonthName(transitionStart.Month), _
transitionStart.Day, _
transitionStart.TimeOfDay)
Else
Console.WriteLine("The {0} {1} of {2} at {3:t}", _
CType(transitionStart.Week, WeekOfMonth).ToString(), _
transitionStart.DayOfWeek.ToString(), _
MonthName(transitionStart.Month), _
transitionStart.TimeOfDay)
End If
' Get transition end information
Dim transitionEnd As TimeZoneInfo.TransitionTime = adjustment.DaylightTransitionEnd
Console.Write("{0} Annual End: ", spacer)
If transitionEnd.IsFixedDateRule Then
Console.WriteLine("On {0} {1} at {2:t}", _
MonthName(transitionEnd.Month), _
transitionEnd.Day, _
transitionEnd.TimeOfDay)
Else
Console.WriteLine("The {0} {1} of {2} at {3:t}", _
CType(transitionEnd.Week, WeekOfMonth).ToString(), _
transitionEnd.DayOfWeek.ToString(), _
MonthName(transitionEnd.Month), _
transitionEnd.TimeOfDay)
End If
Next
End If
Console.WriteLine()
Next
End Sub
다음은 예제에 의해 생성 되는 출력의 작은 부분입니다.The following is a small portion of the output that is generated by the example. 정확한 출력은 운영 체제와 예제가 실행 되는 날짜에 따라 달라 집니다.The exact output will vary depending on the operating system and the date on which the example is run.
Morocco Standard Time Adjustment rules
Adjustment rule #1
Start Date: Tuesday, January 01, 2008
End Date: Wednesday, December 31, 2008
Time Change: 1:00 hours
Annual Start: The Last Saturday of May at 11:59 PM
Annual End: The Last Sunday of August at 11:59 PM
Adjustment rule #2
Start Date: Thursday, January 01, 2009
End Date: Thursday, December 31, 2009
Time Change: 1:00 hours
Annual Start: The Last Sunday of May at 11:59 PM
Annual End: The Third Thursday of August at 11:59 PM
Coordinated Universal Time has no adjustment rules
GMT Standard Time Adjustment rules
Start Date: Monday, January 01, 0001
End Date: Friday, December 31, 9999
Time Change: 1:00 hours
Annual Start: The Last Sunday of March at 1:00 AM
Annual End: The Last Sunday of October at 2:00 AM
Greenwich Standard Time has no adjustment rules
W. Europe Standard Time Adjustment rules
Start Date: Monday, January 01, 0001
End Date: Friday, December 31, 9999
Time Change: 1:00 hours
Annual Start: The Last Sunday of March at 2:00 AM
Annual End: The Last Sunday of October at 3:00 AM
Central Europe Standard Time Adjustment rules
Start Date: Monday, January 01, 0001
End Date: Friday, December 31, 9999
Time Change: 1:00 hours
Annual Start: The Last Sunday of March at 2:00 AM
Annual End: The Last Sunday of October at 3:00 AM
Romance Standard Time Adjustment rules
Start Date: Monday, January 01, 0001
End Date: Friday, December 31, 9999
Time Change: 1:00 hours
Annual Start: The Last Sunday of March at 2:00 AM
Annual End: The Last Sunday of October at 3:00 AM
Central European Standard Time Adjustment rules
Start Date: Monday, January 01, 0001
End Date: Friday, December 31, 9999
Time Change: 1:00 hours
Annual Start: The Last Sunday of March at 2:00 AM
Annual End: The Last Sunday of October at 3:00 AM
W. Central Africa Standard Time has no adjustment rules
설명
TimeZoneInfo.AdjustmentRule클래스는 각각 일광 절약 시간에 대 한 특정 시간 변경의 유효한 시작 및 종료 날짜와 델타 (조정에서 표준 시간대의 표준 시간을 변경 하는 정확한 크기)를 정의 합니다.The TimeZoneInfo.AdjustmentRule class defines the effective start and end dates of a particular time change to and from daylight saving time, respectively, as well as its delta (the exact amount by which the adjustment causes the time zone's standard time to change). 또한 두 속성 TimeZoneInfo.TransitionTime 은 표준 시간으로의 전환이 발생 하는 시기를 정의 하는 개체를 반환 합니다.In addition, two properties return TimeZoneInfo.TransitionTime objects that define when each transition to and from standard time occurs.
참고
클래스의 인스턴스는 TimeZoneInfo.AdjustmentRule 변경할 수 없습니다.An instance of the TimeZoneInfo.AdjustmentRule class is immutable. 개체를 만든 후에는 해당 값을 수정할 수 없습니다.Once an object has been created, its values cannot be modified.
개체를 만들려면 TimeZoneInfo.AdjustmentRule static
( Shared
Visual Basic) 메서드를 호출 TimeZoneInfo.AdjustmentRule.CreateAdjustmentRule 합니다.To create a TimeZoneInfo.AdjustmentRule object, call the static
(Shared
in Visual Basic) TimeZoneInfo.AdjustmentRule.CreateAdjustmentRule method. 그런 다음 개체의 배열을 TimeZoneInfo.AdjustmentRule 메서드의 오버 로드 중 두 개에 제공할 수 있습니다 TimeZoneInfo.CreateCustomTimeZone .You can then supply an array of TimeZoneInfo.AdjustmentRule objects to two of the overloads of the TimeZoneInfo.CreateCustomTimeZone method. 특정 표준 시간대의 조정 규칙을 검색 하려면 TimeZoneInfo.GetAdjustmentRules 개체의 배열을 반환 하는 메서드를 호출 TimeZoneInfo.AdjustmentRule 합니다.To retrieve the adjustment rules of a particular time zone, call its TimeZoneInfo.GetAdjustmentRules method, which returns an array of TimeZoneInfo.AdjustmentRule objects.
속성
DateEnd |
조정 규칙이 더 이상 유효하지 않게 되는 날짜를 가져옵니다.Gets the date when the adjustment rule ceases to be in effect. |
DateStart |
조정 규칙이 적용되는 날짜를 가져옵니다.Gets the date when the adjustment rule takes effect. |
DaylightDelta |
표준 시간대의 일광 절약 시간을 구성하는 데 필요한 시간을 가져옵니다.Gets the amount of time that is required to form the time zone's daylight saving time. 이 시간은 UTC(협정 세계시)에 대한 해당 표준 시간대의 오프셋에 추가됩니다.This amount of time is added to the time zone's offset from Coordinated Universal Time (UTC). |
DaylightTransitionEnd |
일광 절약 시간을 다시 표준 시간으로 전환하는 연간 전환에 대한 정보를 가져옵니다.Gets information about the annual transition from daylight saving time back to standard time. |
DaylightTransitionStart |
표준 시간에서 일광 절약 시간으로의 연간 전환에 대한 정보를 가져옵니다.Gets information about the annual transition from standard time to daylight saving time. |
메서드
CreateAdjustmentRule(DateTime, DateTime, TimeSpan, TimeZoneInfo+TransitionTime, TimeZoneInfo+TransitionTime) |
특정 표준 시간대에 대한 새 조정 규칙을 만듭니다.Creates a new adjustment rule for a particular time zone. |
Equals(Object) |
지정된 개체가 현재 개체와 같은지 확인합니다.Determines whether the specified object is equal to the current object. (다음에서 상속됨 Object) |
Equals(TimeZoneInfo+AdjustmentRule) |
현재 TimeZoneInfo.AdjustmentRule 개체가 두 번째 TimeZoneInfo.AdjustmentRule 개체와 같은지 확인합니다.Determines whether the current TimeZoneInfo.AdjustmentRule object is equal to a second TimeZoneInfo.AdjustmentRule object. |
GetHashCode() |
해시 테이블과 같은 데이터 구조 및 해싱 알고리즘을 위한 해시 함수 역할을 합니다.Serves as a hash function for hashing algorithms and data structures such as hash tables. |
GetType() |
현재 인스턴스의 Type을 가져옵니다.Gets the Type of the current instance. (다음에서 상속됨 Object) |
MemberwiseClone() |
현재 Object의 단순 복사본을 만듭니다.Creates a shallow copy of the current Object. (다음에서 상속됨 Object) |
ToString() |
현재 개체를 나타내는 문자열을 반환합니다.Returns a string that represents the current object. (다음에서 상속됨 Object) |
명시적 인터페이스 구현
IDeserializationCallback.OnDeserialization(Object) |
TimeZoneInfo.AdjustmentRule 개체의 deserialization이 완료될 때 실행됩니다.Runs when the deserialization of a TimeZoneInfo.AdjustmentRule object is completed. |
ISerializable.GetObjectData(SerializationInfo, StreamingContext) |
이 개체를 직렬화하는 데 필요한 데이터로 SerializationInfo 개체를 채웁니다.Populates a SerializationInfo object with the data that is required to serialize this object. |