TimeZoneInfo.AdjustmentRule Sınıf
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
Gün ışığından yararlanma saatine geçiş gibi saat dilimi ayarlaması hakkında bilgi sağlar.
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
- Devralma
-
TimeZoneInfo.AdjustmentRule
- Öznitelikler
- Uygulamalar
Örnekler
Aşağıdaki örnek, yerel sistemde tanımlanan tüm saat dilimlerini alır ve ayarlama kuralları hakkındaki tüm bilgileri görüntüler.
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();
}
}
type WeekOfMonth =
| First = 1
| Second = 2
| Third = 3
| Fourth = 4
| Last = 5
let showStartAndEndDates () =
// Get all time zones from system
let timeZones = TimeZoneInfo.GetSystemTimeZones()
let monthNames = CultureInfo.CurrentCulture.DateTimeFormat.MonthNames
// Get each time zone
for timeZone in timeZones do
let adjustments = timeZone.GetAdjustmentRules()
// Display message for time zones with no adjustments
if adjustments.Length = 0 then
printfn $"{timeZone.StandardName} has no adjustment rules"
else
// Handle time zones with 1 or 2+ adjustments differently
let mutable ctr = 0
let showCount, spacer =
if adjustments.Length > 1 then
true, " "
else
false, ""
printfn $"{timeZone.StandardName} Adjustment rules"
// Iterate adjustment rules
for adjustment in adjustments do
if showCount then
printfn $" Adjustment rule #{ctr + 1}"
ctr <- ctr + 1
// Display general adjustment information
printfn $"{spacer} Start Date: {adjustment.DateStart:D}"
printfn $"{spacer} End Date: {adjustment.DateEnd:D}"
printfn $"{spacer} Time Change: {adjustment.DaylightDelta.Hours}:{adjustment.DaylightDelta.Minutes:D2} hours"
// Get transition start information
let transitionStart = adjustment.DaylightTransitionStart
printf $"{spacer} Annual Start: "
if transitionStart.IsFixedDateRule then
printfn $"On {monthNames[transitionStart.Month - 1]} {transitionStart.Day} at {transitionStart.TimeOfDay:t}"
else
printfn $"The {transitionStart.Week |> enum<WeekOfMonth>} {transitionStart.DayOfWeek} of {monthNames[transitionStart.Month - 1]} at {transitionStart.TimeOfDay:t}"
// Get transition end information
let transitionEnd = adjustment.DaylightTransitionEnd
printf $"{spacer} Annual End: "
if transitionEnd.IsFixedDateRule then
printfn $"On {monthNames[transitionEnd.Month - 1]} {transitionEnd.Day} at {transitionEnd.TimeOfDay:t}"
else
printfn $"The {enum<WeekOfMonth> transitionEnd.Week} {transitionEnd.DayOfWeek} of {monthNames[transitionEnd.Month - 1]} at {transitionEnd.TimeOfDay:t}"
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
Aşağıda, çıktının örnek tarafından oluşturulan küçük bir kısmı verilmiştir. Tam çıktı, işletim sistemine ve örneğin çalıştırıldığı tarihe bağlı olarak değişir.
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
Açıklamalar
sınıfı, TimeZoneInfo.AdjustmentRule belirli bir saat değişikliğinin etkin başlangıç ve bitiş tarihlerini sırasıyla gün ışığından yararlanma saatiyle ve deltasıyla (ayarlamanın saat diliminin standart saatinin değişmesine neden olan tam tutar) tanımlar. Buna ek olarak, iki özellik her geçişin standart zamana ne zaman ve ne zaman gerçekleştiğini tanımlayan nesneler döndürür TimeZoneInfo.TransitionTime .
Not
Sınıfının bir örneği TimeZoneInfo.AdjustmentRule sabittir. Bir nesne oluşturulduktan sonra değerleri değiştirilemez.
Nesne TimeZoneInfo.AdjustmentRule oluşturmak için (Shared
Visual Basic) TimeZoneInfo.AdjustmentRule.CreateAdjustmentRule yöntemini çağırın static
. Daha sonra yönteminin TimeZoneInfo.AdjustmentRule aşırı yüklemelerinden TimeZoneInfo.CreateCustomTimeZone ikisine bir nesne dizisi sağlayabilirsiniz. Belirli bir saat diliminin ayarlama kurallarını almak için bir nesne dizisi döndüren yöntemini çağırın TimeZoneInfo.GetAdjustmentRules TimeZoneInfo.AdjustmentRule .
Özellikler
BaseUtcOffsetDelta |
Ayarlama kuralı dönemi boyunca saat dilimi için temel UTC uzaklığı ile zaman farkını alır. |
DateEnd |
Ayarlama kuralının geçerli olmaktan çıktığı tarihi alır. |
DateStart |
Ayarlama kuralının geçerli olduğu tarihi alır. |
DaylightDelta |
Saat diliminin gün ışığından yararlanma saatini oluşturmak için gereken süreyi alır. Bu süre, eşgüdümlü Evrensel Saat'ten (UTC) saat diliminin uzaklığı için eklenir. |
DaylightTransitionEnd |
Gün ışığından yararlanma saatinden standart saate kadar olan yıllık geçiş hakkında bilgi alır. |
DaylightTransitionStart |
Standart saatten yaz saati uygulamasına yıllık geçiş hakkında bilgi alır. |
Yöntemler
CreateAdjustmentRule(DateTime, DateTime, TimeSpan, TimeZoneInfo+TransitionTime, TimeZoneInfo+TransitionTime) |
Belirli bir saat dilimi için yeni bir ayarlama kuralı oluşturur. |
CreateAdjustmentRule(DateTime, DateTime, TimeSpan, TimeZoneInfo+TransitionTime, TimeZoneInfo+TransitionTime, TimeSpan) |
Belirli bir saat dilimi için yeni bir ayarlama kuralı oluşturur. |
Equals(Object) |
Geçerli örneğin başka bir örneğe eşit olup olmadığını gösterir. |
Equals(Object) |
Belirtilen nesnenin geçerli nesneye eşit olup olmadığını belirler. (Devralındığı yer: Object) |
Equals(TimeZoneInfo+AdjustmentRule) |
Geçerli TimeZoneInfo.AdjustmentRule nesnenin ikinci TimeZoneInfo.AdjustmentRule bir nesneye eşit olup olmadığını belirler. |
GetHashCode() |
Karma algoritmalar ve karma tablolar gibi veri yapıları için karma işlevi görür. |
GetType() |
Type Geçerli örneğini alır. (Devralındığı yer: Object) |
MemberwiseClone() |
Geçerli Objectöğesinin sığ bir kopyasını oluşturur. (Devralındığı yer: Object) |
ToString() |
Geçerli nesneyi temsil eden dizeyi döndürür. (Devralındığı yer: Object) |
Belirtik Arabirim Kullanımları
IDeserializationCallback.OnDeserialization(Object) |
Bir TimeZoneInfo.AdjustmentRule nesnenin seri durumdan çıkarma işlemi tamamlandığında çalışır. |
ISerializable.GetObjectData(SerializationInfo, StreamingContext) |
Bir SerializationInfo nesneyi, bu nesneyi seri hale getirmek için gereken verilerle doldurur. |