TimeZoneInfo.CreateCustomTimeZone Yöntem

Tanım

Yerel bilgisayarda bulunmayan bir saat dilimi tanımlar.

Aşırı Yüklemeler

CreateCustomTimeZone(String, TimeSpan, String, String, String, TimeZoneInfo+AdjustmentRule[], Boolean)

Belirtilen tanımlayıcı, Eşgüdümlü Evrensel Saat (UTC) uzaklığı, görünen ad, standart saat adı, gün ışığından yararlanma saati adı, yaz saati kuralları ve döndürülen nesnenin yaz saati bilgilerini yansıtıp yansıtmadığını gösteren bir değer içeren özel bir saat dilimi oluşturur.

CreateCustomTimeZone(String, TimeSpan, String, String)

Belirtilen tanımlayıcı, Eşgüdümlü Evrensel Saat (UTC) uzaklığı, görünen ad ve standart saat görünen adı ile özel bir saat dilimi oluşturur.

CreateCustomTimeZone(String, TimeSpan, String, String, String, TimeZoneInfo+AdjustmentRule[])

Belirtilen tanımlayıcı, Eşgüdümlü Evrensel Saat (UTC) uzaklığı, görünen ad, standart saat adı, yaz saati adı ve yaz saati kuralları ile özel bir saat dilimi oluşturur.

CreateCustomTimeZone(String, TimeSpan, String, String, String, TimeZoneInfo+AdjustmentRule[], Boolean)

Kaynak:
TimeZoneInfo.cs
Kaynak:
TimeZoneInfo.cs
Kaynak:
TimeZoneInfo.cs

Belirtilen tanımlayıcı, Eşgüdümlü Evrensel Saat (UTC) uzaklığı, görünen ad, standart saat adı, gün ışığından yararlanma saati adı, yaz saati kuralları ve döndürülen nesnenin yaz saati bilgilerini yansıtıp yansıtmadığını gösteren bir değer içeren özel bir saat dilimi oluşturur.

public:
 static TimeZoneInfo ^ CreateCustomTimeZone(System::String ^ id, TimeSpan baseUtcOffset, System::String ^ displayName, System::String ^ standardDisplayName, System::String ^ daylightDisplayName, cli::array <TimeZoneInfo::AdjustmentRule ^> ^ adjustmentRules, bool disableDaylightSavingTime);
public static TimeZoneInfo CreateCustomTimeZone (string id, TimeSpan baseUtcOffset, string? displayName, string? standardDisplayName, string? daylightDisplayName, TimeZoneInfo.AdjustmentRule[]? adjustmentRules, bool disableDaylightSavingTime);
public static TimeZoneInfo CreateCustomTimeZone (string id, TimeSpan baseUtcOffset, string displayName, string standardDisplayName, string daylightDisplayName, TimeZoneInfo.AdjustmentRule[] adjustmentRules, bool disableDaylightSavingTime);
static member CreateCustomTimeZone : string * TimeSpan * string * string * string * TimeZoneInfo.AdjustmentRule[] * bool -> TimeZoneInfo
Public Shared Function CreateCustomTimeZone (id As String, baseUtcOffset As TimeSpan, displayName As String, standardDisplayName As String, daylightDisplayName As String, adjustmentRules As TimeZoneInfo.AdjustmentRule(), disableDaylightSavingTime As Boolean) As TimeZoneInfo

Parametreler

id
String

Saat dilimi tanımlayıcısı.

baseUtcOffset
TimeSpan

TimeSpan Bu saat dilimi ile Eşgüdümlü Evrensel Saat (UTC) arasındaki saat farkını temsil eden nesne.

displayName
String

Yeni saat diliminin görünen adı.

standardDisplayName
String

Yeni saat diliminin standart saat adı.

daylightDisplayName
String

Yeni saat diliminin gün ışığından yararlanma saati adı.

adjustmentRules
TimeZoneInfo.AdjustmentRule[]

Belirli bir süre için temel UTC uzaklığını genişleten bir nesne dizisi TimeZoneInfo.AdjustmentRule .

disableDaylightSavingTime
Boolean

true yeni nesnede bulunan adjustmentRules gün ışığından yararlanma saatiyle ilgili bilgileri atmak için; aksi takdirde , false.

Döndürülenler

Yeni saat dilimi. disableDaylightSavingTime parametresi isetrue, döndürülen nesnenin gün ışığından yararlanma saati verileri yoktur.

Özel durumlar

id parametresidirnull.

id parametresi boş bir dizedir ("").

-veya-

baseUtcOffset parametresi dakikaların tamsayısını temsil etmez.

baseUtcOffset Parametresi 14 saatten büyük veya -14 saatten kısadır.

Parametre çakışmasında adjustmentRules belirtilen ayarlama kuralları.

-veya-

parametresinde adjustmentRules belirtilen ayarlama kuralları kronolojik sırada değil.

-veya-

içindeki adjustmentRules bir veya daha fazla öğe şeklindedir null.

-veya-

Bir tarihe birden çok ayarlama kuralı uygulanabilir.

-veya-

Parametrenin baseUtcOffset toplamı ve DaylightDelta dizideki adjustmentRules bir veya daha fazla nesnenin değeri 14 saatten büyük veya -14 saatten kısadır.

Örnekler

Aşağıdaki örnek, Palmer istasyonu ve Antarktika'daki Anvers Adası için özel bir saat dilimi oluşturur. yöntemine disableDaylightSavingTime yapılan çağrıdaki parametresini TimeZoneInfo.CreateCustomTimeZone olarak trueayarlar. Ardından, varsa yeni saat diliminin yaz saati adını ve yeni saat diliminde yaz saati bilgisi olmadığını onaylamak için ayarlama kurallarının sayısını görüntüler.

// Define transition times to/from DST
TimeZoneInfo.TransitionTime startTransition, endTransition;
startTransition = TimeZoneInfo.TransitionTime.CreateFloatingDateRule(new DateTime(1, 1, 1, 4, 0, 0),
                                                                  10, 2, DayOfWeek.Sunday); 
endTransition = TimeZoneInfo.TransitionTime.CreateFloatingDateRule(new DateTime(1, 1, 1,3, 0, 0), 
                                                                3, 2, DayOfWeek.Sunday);
// Define adjustment rule
TimeSpan delta = new TimeSpan(1, 0, 0);
TimeZoneInfo.AdjustmentRule adjustment = TimeZoneInfo.AdjustmentRule.CreateAdjustmentRule(new DateTime(1999, 10, 1), 
                                      DateTime.MaxValue.Date, delta, startTransition, endTransition);
// Create array for adjustment rules
TimeZoneInfo.AdjustmentRule[] adjustments = {adjustment};
// Define other custom time zone arguments
string displayName = "(GMT-04:00) Antarctica/Palmer Time";
string standardName = "Palmer Standard Time";
string daylightName = "Palmer Daylight Time";
TimeSpan offset = new TimeSpan(-4, 0, 0);
// Create custom time zone without copying DST information
TimeZoneInfo palmer = TimeZoneInfo.CreateCustomTimeZone(standardName, offset, displayName, standardName, 
                                                  daylightName, adjustments, true);
// Indicate whether new time zone//s adjustment rules are present
Console.WriteLine("{0} {1}has {2} adjustment rules.", 
                  palmer.StandardName, 
                  ! (string.IsNullOrEmpty(palmer.DaylightName)) ?  "(" + palmer.DaylightName + ") ": "" , 
                  palmer.GetAdjustmentRules().Length);
// Indicate whether new time zone supports DST
Console.WriteLine("{0} supports DST: {1}", palmer.StandardName, palmer.SupportsDaylightSavingTime);
// Define transition times to/from DST
let startTransition = 
    TimeZoneInfo.TransitionTime.CreateFloatingDateRule(DateTime(1, 1, 1, 4, 0, 0), 10, 2, DayOfWeek.Sunday) 
let endTransition = 
    TimeZoneInfo.TransitionTime.CreateFloatingDateRule(DateTime(1, 1, 1,3, 0, 0), 3, 2, DayOfWeek.Sunday)
// Define adjustment rule
let delta = TimeSpan(1, 0, 0)
let adjustment = 
    TimeZoneInfo.AdjustmentRule.CreateAdjustmentRule(DateTime(1999, 10, 1), DateTime.MaxValue.Date, delta, startTransition, endTransition)
// Create array for adjustment rules
let adjustments = [| adjustment |]
// Define other custom time zone arguments
let displayName = "(GMT-04:00) Antarctica/Palmer Time"
let standardName = "Palmer Standard Time"
let daylightName = "Palmer Daylight Time"
let offset = TimeSpan(-4, 0, 0)
// Create custom time zone without copying DST information
let palmer = TimeZoneInfo.CreateCustomTimeZone(standardName, offset, displayName, standardName, daylightName, adjustments, true)
// Indicate whether time zone//s adjustment rules are present
printfn $"""{palmer.StandardName} {if String.IsNullOrEmpty palmer.DaylightName then "" else "(" + palmer.DaylightName + ")"}has {palmer.GetAdjustmentRules().Length} adjustment rules."""
// Indicate whether time zone supports DST
printfn $"{palmer.StandardName} supports DST: {palmer.SupportsDaylightSavingTime}"
' Define transition times to/from DST
Dim startTransition As TimeZoneInfo.TransitionTime = TimeZoneInfo.TransitionTime.CreateFloatingDateRule(#04:00:00#, 10, 2, DayOfWeek.Sunday) 
Dim endTransition As TimeZoneInfo.TransitionTime = TimeZoneInfo.TransitionTime.CreateFloatingDateRule(#3:00:00#, 3, 2, DayOfWeek.Sunday)
' Define adjustment rule
Dim delta As TimeSpan = New TimeSpan(1, 0, 0)
Dim adjustment As TimeZoneInfo.AdjustmentRule = TimeZoneInfo.AdjustmentRule.CreateAdjustmentRule(#10/01/1999#, Date.MaxValue.Date, delta, startTransition, endTransition)
' Create array for adjustment rules
Dim adjustments() As TimeZoneInfo.AdjustmentRule = {adjustment}
' Define other custom time zone arguments
Dim displayName As String = "(GMT-04:00) Antarctica/Palmer Time"
Dim standardName As String = "Palmer Standard Time"
Dim daylightName As String = "Palmer Daylight Time"
Dim offset As TimeSpan = New TimeSpan(-4, 0, 0)
Dim palmer As TimeZoneInfo = TimeZoneInfo.CreateCustomTimeZone(standardName, offset, displayName, standardName, daylightName, adjustments, True)
' Indicate whether new time zone's adjustment rules are present
Console.WriteLine("{0} {1}has {2} adjustment rules.", _
                  palmer.StandardName, _
                  IIf(Not String.IsNullOrEmpty(palmer.DaylightName), "(" & palmer.DaylightName & ") ", ""), _
                  palmer.GetAdjustmentRules().Length)
' Indicate whether new time zone supports DST
Console.WriteLine("{0} supports DST: {1}", palmer.StandardName, palmer.SupportsDaylightSavingTime)

Açıklamalar

Yaz saati desteği çalışma zamanındaki koşullara göre belirlenebilen özel bir saat dilimi oluşturmak için yönteminin bu aşırı yüklemesini TimeZoneInfo.CreateCustomTimeZone kullanabilirsiniz.

Aşağıdaki tabloda yöntemine sağlanan TimeZoneInfo.CreateCustomTimeZone parametreler ile yöntem çağrısı tarafından döndürülen nesnenin TimeZoneInfo üyeleri arasındaki ilişki gösterilmektedir.

CreateCustomTimeZone parametresi TimeZoneInfo özelliği
id Id
baseUtcOffset BaseUtcOffset
displayName DisplayName
standardDisplayName StandardName
daylightDisplayName DaylightName ise disableDaylightSavingTimefalse; String.Empty ise disableDaylightSavingTimetrue.
adjustmentRules ise falsedisableDaylightSavingTime yöntemi tarafından GetAdjustmentRules döndürülen bir nesne dizisiTimeZoneInfo.AdjustmentRule; ise disableDaylightSavingTime yöntemi tarafından GetAdjustmentRules döndürülen boş bir dizi.true
disableDaylightSavingTime Değil SupportsDaylightSavingTime.

Genellikle, saat diliminin standart saat adı ve tanımlayıcısı aynıdır. Ancak, saat dilimi tanımlayıcısının uzunluğu 32 karakteri aşmamalıdır. parametresine displayName geçirilen dize oldukça standart bir biçimi izler. Görünen adın ilk kısmı saat diliminin parantez içinde GMT kısaltmasıyla ifade edilen (Greenwich Saati) Eşgüdümlü Evrensel Saat'ten uzaklığıdır. Bunu, saat diliminin kendisini ya da saat dilimindeki şehirlerden, bölgelerden veya ülkelerden birini veya daha fazlasını ya da her ikisini de tanımlayan bir dize izler. Örnek:

(GMT+02:00) Athens, Beirut, Istanbul, Minsk
(GMT-02:00) Mid-Atlantic
(GMT-07:00) Mountain Time (US & Canada)

Saat dilimi ayarlama kuralları aşağıdakiler yapılarak tanımlanır:

  1. CreateFloatingDateRule Her ayarlama kuralı için başlangıç ve bitiş geçiş kurallarını tanımlamak için veya CreateFixedDateRule yöntemini çağırma.

  2. CreateAdjustmentRule Her ayarlama kuralı için yöntemini çağırma.

  3. Ayarlama kurallarını parametre olarak geçirilebilen bir diziye adjustmentRules atama.

parametresi ise disableDaylightSavingTimefalse, bu yöntemin işlemi aşırı yüklemeyle TimeZoneInfo.CreateCustomTimeZone aynıdır. ise disableDaylightSavingTimetrue, döndürülen nesne hiçbir ayarlama kuralı ve değeri boş dize olan bir DaylightName özellik içerir.

Ayrıca bkz.

Şunlara uygulanır

CreateCustomTimeZone(String, TimeSpan, String, String)

Kaynak:
TimeZoneInfo.cs
Kaynak:
TimeZoneInfo.cs
Kaynak:
TimeZoneInfo.cs

Belirtilen tanımlayıcı, Eşgüdümlü Evrensel Saat (UTC) uzaklığı, görünen ad ve standart saat görünen adı ile özel bir saat dilimi oluşturur.

public:
 static TimeZoneInfo ^ CreateCustomTimeZone(System::String ^ id, TimeSpan baseUtcOffset, System::String ^ displayName, System::String ^ standardDisplayName);
public static TimeZoneInfo CreateCustomTimeZone (string id, TimeSpan baseUtcOffset, string? displayName, string? standardDisplayName);
public static TimeZoneInfo CreateCustomTimeZone (string id, TimeSpan baseUtcOffset, string displayName, string standardDisplayName);
static member CreateCustomTimeZone : string * TimeSpan * string * string -> TimeZoneInfo
Public Shared Function CreateCustomTimeZone (id As String, baseUtcOffset As TimeSpan, displayName As String, standardDisplayName As String) As TimeZoneInfo

Parametreler

id
String

Saat dilimi tanımlayıcısı.

baseUtcOffset
TimeSpan

Bu saat dilimi ile Eşgüdümlü Evrensel Saat (UTC) arasındaki saat farkını temsil eden nesne.

displayName
String

Yeni saat diliminin görünen adı.

standardDisplayName
String

Yeni saat diliminin standart saatinin adı.

Döndürülenler

Yeni saat dilimi.

Özel durumlar

id parametresidirnull.

id parametresi boş bir dizedir ("").

-veya-

baseUtcOffset parametresi dakikaların tamsayısını temsil etmez.

baseUtcOffset Parametresi 14 saatten büyük veya -14 saatten kısadır.

Örnekler

Aşağıdaki örnek, Antarktika'nın Mawson ve Holme Bay bölgeleri için özel bir saat dilimi oluşturur. Ardından yerel saati yeni saat dilimindeki saate dönüştürmenin sonucunu görüntüler.

string displayName = "(GMT+06:00) Antarctica/Mawson Time";
string standardName = "Mawson Time"; 
TimeSpan offset = new TimeSpan(06, 00, 00);
TimeZoneInfo mawson = TimeZoneInfo.CreateCustomTimeZone(standardName, offset, displayName, standardName);
Console.WriteLine("The current time is {0} {1}", 
                  TimeZoneInfo.ConvertTime(DateTime.Now, TimeZoneInfo.Local, mawson),
                  mawson.StandardName);
let displayName = "(GMT+06:00) Antarctica/Mawson Time"
let standardName = "Mawson Time" 
let offset = TimeSpan(06, 00, 00)
let mawson = TimeZoneInfo.CreateCustomTimeZone(standardName, offset, displayName, standardName)
printfn $"The current time is {TimeZoneInfo.ConvertTime(DateTime.Now, TimeZoneInfo.Local, mawson)} {mawson.StandardName}"
Dim displayName As String = "(GMT+06:00) Antarctica/Mawson Time"
Dim standardName As String = "Mawson Time" 
Dim offset As TimeSpan = New TimeSpan(06, 00, 00)
Dim mawson As TimeZoneInfo = TimeZoneInfo.CreateCustomTimeZone(standardName, offset, displayName, standardName)
Console.WriteLine("The current time is {0} {1}", _ 
                  TimeZoneInfo.ConvertTime(Date.Now, TimeZoneInfo.Local, mawson), _
                  mawson.StandardName)

Açıklamalar

Yöntemin CreateCustomTimeZone(String, TimeSpan, String, String) bu aşırı yüklemesi, ayarlamaları olmayan bir saat dilimi (yani yaz saati uygulamasını desteklemeyen bir saat dilimi) oluşturmak için uygundur. Yaz saati ayarlamalarını içeren bir saat dilimi tanımlamak için veya TimeZoneInfo.CreateCustomTimeZone yöntemini kullanınTimeZoneInfo.CreateCustomTimeZone.

Aşağıdaki tabloda yöntemine TimeZoneInfo.CreateCustomTimeZone sağlanan parametreler ile yöntem çağrısı tarafından döndürülen nesnenin TimeZoneInfo özellikleri arasındaki ilişki gösterilmektedir.

CreateCustomTimeZone parametresi TimeZoneInfo özelliği
id Id
baseUtcOffset BaseUtcOffset
displayName DisplayName
standardDisplayName StandardName

Genellikle, saat diliminin standart saat adı ve tanımlayıcısı aynıdır. Ancak, saat dilimi tanımlayıcısının uzunluğu 32 karakteri aşmamalıdır. parametresine displayName geçirilen dize oldukça standart bir biçimi izler. Görünen adın ilk kısmı saat diliminin parantez içinde GMT kısaltmasıyla ifade edilen (Greenwich Saati) Eşgüdümlü Evrensel Saat'ten uzaklığıdır. Bunu, saat diliminin kendisini ya da saat dilimindeki şehirlerden, bölgelerden veya ülkelerden birini veya daha fazlasını ya da her ikisini de tanımlayan bir dize izler. Örnek:

(GMT+02:00) Athens, Beirut, Istanbul, Minsk
(GMT-02:00) Mid-Atlantic
(GMT-07:00) Mountain Time (US & Canada)

Ayrıca bkz.

Şunlara uygulanır

CreateCustomTimeZone(String, TimeSpan, String, String, String, TimeZoneInfo+AdjustmentRule[])

Kaynak:
TimeZoneInfo.cs
Kaynak:
TimeZoneInfo.cs
Kaynak:
TimeZoneInfo.cs

Belirtilen tanımlayıcı, Eşgüdümlü Evrensel Saat (UTC) uzaklığı, görünen ad, standart saat adı, yaz saati adı ve yaz saati kuralları ile özel bir saat dilimi oluşturur.

public:
 static TimeZoneInfo ^ CreateCustomTimeZone(System::String ^ id, TimeSpan baseUtcOffset, System::String ^ displayName, System::String ^ standardDisplayName, System::String ^ daylightDisplayName, cli::array <TimeZoneInfo::AdjustmentRule ^> ^ adjustmentRules);
public static TimeZoneInfo CreateCustomTimeZone (string id, TimeSpan baseUtcOffset, string? displayName, string? standardDisplayName, string? daylightDisplayName, TimeZoneInfo.AdjustmentRule[]? adjustmentRules);
public static TimeZoneInfo CreateCustomTimeZone (string id, TimeSpan baseUtcOffset, string displayName, string standardDisplayName, string daylightDisplayName, TimeZoneInfo.AdjustmentRule[] adjustmentRules);
static member CreateCustomTimeZone : string * TimeSpan * string * string * string * TimeZoneInfo.AdjustmentRule[] -> TimeZoneInfo
Public Shared Function CreateCustomTimeZone (id As String, baseUtcOffset As TimeSpan, displayName As String, standardDisplayName As String, daylightDisplayName As String, adjustmentRules As TimeZoneInfo.AdjustmentRule()) As TimeZoneInfo

Parametreler

id
String

Saat dilimi tanımlayıcısı.

baseUtcOffset
TimeSpan

Bu saat dilimi ile Eşgüdümlü Evrensel Saat (UTC) arasındaki saat farkını temsil eden nesne.

displayName
String

Yeni saat diliminin görünen adı.

standardDisplayName
String

Yeni saat diliminin standart saat adı.

daylightDisplayName
String

Yeni saat diliminin gün ışığından yararlanma saati adı.

adjustmentRules
TimeZoneInfo.AdjustmentRule[]

Belirli bir dönem için temel UTC uzaklığını genişleten bir dizi.

Döndürülenler

TimeZoneInfo Yeni saat dilimini temsil eden nesne.

Özel durumlar

id parametresidirnull.

id parametresi boş bir dizedir ("").

-veya-

baseUtcOffset parametresi dakikaların tamsayısını temsil etmez.

baseUtcOffset Parametresi 14 saatten büyük veya -14 saatten kısadır.

Parametre çakışmasında adjustmentRules belirtilen ayarlama kuralları.

-veya-

parametresinde adjustmentRules belirtilen ayarlama kuralları kronolojik sırada değil.

-veya-

içindeki adjustmentRules bir veya daha fazla öğe şeklindedir null.

-veya-

Bir tarihe birden çok ayarlama kuralı uygulanabilir.

-veya-

Parametrenin baseUtcOffset toplamı ve DaylightDelta dizideki adjustmentRules bir veya daha fazla nesnenin değeri 14 saatten büyük veya -14 saatten kısadır.

Örnekler

Aşağıdaki örnek, Palmer istasyonu ve Antarktika'daki Anvers Adası için özel bir saat dilimi oluşturur. Ardından yerel saati yeni saat dilimindeki saate dönüştürür ve sonucu görüntüler.

// Define transition times to/from DST
TimeZoneInfo.TransitionTime startTransition, endTransition;
startTransition = TimeZoneInfo.TransitionTime.CreateFloatingDateRule(new DateTime(1, 1, 1, 4, 0, 0), 
                                                                  10, 2, DayOfWeek.Sunday); 
endTransition = TimeZoneInfo.TransitionTime.CreateFloatingDateRule(new DateTime(1, 1, 1, 3, 0, 0), 
                                                                3, 2, DayOfWeek.Sunday);
// Define adjustment rule
TimeSpan delta = new TimeSpan(1, 0, 0);
TimeZoneInfo.AdjustmentRule adjustment;
adjustment = TimeZoneInfo.AdjustmentRule.CreateAdjustmentRule(new DateTime(1999, 10, 1), DateTime.MaxValue.Date, delta, startTransition, endTransition);
// Create array for adjustment rules
TimeZoneInfo.AdjustmentRule[] adjustments = {adjustment};
// Define other custom time zone arguments
string displayName = "(GMT-04:00) Antarctica/Palmer Time";
string standardName = "Palmer Time";
string daylightName = "Palmer Daylight Time";
TimeSpan offset = new TimeSpan(-4, 0, 0);
TimeZoneInfo palmer = TimeZoneInfo.CreateCustomTimeZone(standardName, offset, displayName, standardName, daylightName, adjustments);
Console.WriteLine("The current time is {0} {1}",  
                  TimeZoneInfo.ConvertTime(DateTime.Now, TimeZoneInfo.Local, palmer), 
                  palmer.StandardName);
// Define transition times to/from DST
let startTransition = 
    TimeZoneInfo.TransitionTime.CreateFloatingDateRule(DateTime(1, 1, 1, 4, 0, 0), 10, 2, DayOfWeek.Sunday) 
let endTransition = 
    TimeZoneInfo.TransitionTime.CreateFloatingDateRule(DateTime(1, 1, 1, 3, 0, 0), 3, 2, DayOfWeek.Sunday)
// Define adjustment rule
let delta = TimeSpan(1, 0, 0)
let adjustment = 
    TimeZoneInfo.AdjustmentRule.CreateAdjustmentRule(DateTime(1999, 10, 1), DateTime.MaxValue.Date, delta, startTransition, endTransition)
// Create array for adjustment rules
let adjustments = [| adjustment |]
// Define other custom time zone arguments
let displayName = "(GMT-04:00) Antarctica/Palmer Time"
let standardName = "Palmer Time"
let daylightName = "Palmer Daylight Time"
let offset = TimeSpan(-4, 0, 0)
let palmer = 
    TimeZoneInfo.CreateCustomTimeZone(standardName, offset, displayName, standardName, daylightName, adjustments)
printfn $"The current time is {TimeZoneInfo.ConvertTime(DateTime.Now, TimeZoneInfo.Local, palmer)} {palmer.StandardName}"
' Define transition times to/from DST
Dim startTransition As TimeZoneInfo.TransitionTime = TimeZoneInfo.TransitionTime.CreateFloatingDateRule(#04:00:00#, 10, 2, DayOfWeek.Sunday) 
Dim endTransition As TimeZoneInfo.TransitionTime = TimeZoneInfo.TransitionTime.CreateFloatingDateRule(#3:00:00#, 3, 2, DayOfWeek.Sunday)
' Define adjustment rule
Dim delta As TimeSpan = New TimeSpan(1, 0, 0)
Dim adjustment As TimeZoneInfo.AdjustmentRule = TimeZoneInfo.AdjustmentRule.CreateAdjustmentRule(#10/01/1999#, Date.MaxValue.Date, delta, startTransition, endTransition)
' Create array for adjustment rules
Dim adjustments() As TimeZoneInfo.AdjustmentRule = {adjustment}
' Define other custom time zone arguments
Dim DisplayName As String = "(GMT-04:00) Antarctica/Palmer Time"
Dim standardName As String = "Palmer Standard Time"
Dim daylightName As String = "Palmer Daylight Time"
Dim offset As TimeSpan = New TimeSpan(-4, 0, 0)
Dim palmer As TimeZoneInfo = TimeZoneInfo.CreateCustomTimeZone(standardName, offset, displayName, standardName, daylightName, adjustments)
Console.WriteLine("The current time is {0} {1}", _ 
                  TimeZoneInfo.ConvertTime(Date.Now, TimeZoneInfo.Local, palmer), _
                  palmer.StandardName)

Açıklamalar

yönteminin TimeZoneInfo.CreateCustomTimeZone bu aşırı yüklemesi, gün ışığından yararlanma saatini destekleyen bir saat dilimi oluşturmak için uygundur. Yaz saati kullanımını desteklemeyen bir saat dilimi tanımlamak için veya TimeZoneInfo.CreateCustomTimeZone yöntemini kullanınTimeZoneInfo.CreateCustomTimeZone.

Aşağıdaki tabloda yöntemine sağlanan TimeZoneInfo.CreateCustomTimeZone parametreler ile yöntem çağrısı tarafından döndürülen nesnenin TimeZoneInfo üyeleri arasındaki ilişki gösterilmektedir.

CreateCustomTimeZone parametresi TimeZoneInfo üyesi
id Id
baseUtcOffset BaseUtcOffset
displayName DisplayName
standardDisplayName StandardName
daylightDisplayName DaylightName
adjustmentRules yöntemi tarafından GetAdjustmentRules döndürülen bir nesne dizisiSystem.TimeZoneInfo.AdjustmentRule.

Genellikle, saat diliminin standart saat adı ve tanımlayıcısı aynıdır. Ancak, saat dilimi tanımlayıcısının uzunluğu 32 karakteri aşmamalıdır. parametresine displayName geçirilen dize oldukça standart bir biçimi izler. Görünen adın ilk kısmı saat diliminin parantez içinde GMT kısaltmasıyla ifade edilen (Greenwich Saati) Eşgüdümlü Evrensel Saat'ten uzaklığıdır. Bunu, saat diliminin kendisini ya da saat dilimindeki şehirlerden, bölgelerden veya ülkelerden birini veya daha fazlasını ya da her ikisini de tanımlayan bir dize izler. Örnek:

(GMT+02:00) Athens, Beirut, Istanbul, Minsk
(GMT-02:00) Mid-Atlantic
(GMT-07:00) Mountain Time (US & Canada)

parametresi, baseUtcOffset tüm saat dilimi ayarlama kuralları için özel saat diliminin Eşgüdümlü Evrensel Saat 'ten (UTC) uzaklığını tanımlar. Başka bir deyişle, nesne modeli saat TimeZoneInfo diliminin UTC'den uzaklığının saat diliminin ömrü boyunca sabit olduğunu ve belirli ayarlama kurallarından bağımsız olarak mevcut olduğunu varsayar. UTC'den uzaklığını değiştiren bir saat dilimini yansıtmak için yeni bir saat dilimi nesnesi oluşturmanız gerekir.

Saat dilimi ayarlama kuralları aşağıdakiler yapılarak tanımlanır:

  1. CreateFloatingDateRule Her ayarlama kuralı için başlangıç ve bitiş geçiş süresini tanımlamak için veya CreateFixedDateRule yöntemini çağırma.

  2. CreateAdjustmentRule Her ayarlama kuralı için yöntemini çağırma.

  3. Ayarlama kurallarını parametre olarak geçirilebilen bir diziye adjustmentRules atama.

Ayrıca bkz.

Şunlara uygulanır