TimeZoneInfo.CreateCustomTimeZone Yöntem
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.
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 true
ayarlar. 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 disableDaylightSavingTime false ; String.Empty ise disableDaylightSavingTime true . |
adjustmentRules |
ise false disableDaylightSavingTime 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:
CreateFloatingDateRule Her ayarlama kuralı için başlangıç ve bitiş geçiş kurallarını tanımlamak için veya CreateFixedDateRule yöntemini çağırma.
CreateAdjustmentRule Her ayarlama kuralı için yöntemini çağırma.
Ayarlama kurallarını parametre olarak geçirilebilen bir diziye
adjustmentRules
atama.
parametresi ise disableDaylightSavingTime
false
, bu yöntemin işlemi aşırı yüklemeyle TimeZoneInfo.CreateCustomTimeZone aynıdır. ise disableDaylightSavingTime
true
, döndürülen nesne hiçbir ayarlama kuralı ve değeri boş dize olan bir DaylightName özellik içerir.
Ayrıca bkz.
- Nasıl yapılır: Ayarlama Kuralları Olmadan Saat Dilimleri Oluşturma
- Nasıl yapılır: Ayarlama Kuralları ile Saat Dilimleri Oluşturma
Ş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:
CreateFloatingDateRule Her ayarlama kuralı için başlangıç ve bitiş geçiş süresini tanımlamak için veya CreateFixedDateRule yöntemini çağırma.
CreateAdjustmentRule Her ayarlama kuralı için yöntemini çağırma.
Ayarlama kurallarını parametre olarak geçirilebilen bir diziye
adjustmentRules
atama.