TimeZoneInfo.CreateCustomTimeZone 메서드

정의

로컬 컴퓨터에 없는 표준 시간대를 정의합니다.

오버로드

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

지정된 식별자, UTC(협정 세계시)로부터의 오프셋, 표시 이름, 표준 시간 이름, 일광 절약 시간 이름, 일광 절약 시간 규칙 및 반환된 개체가 일광 절약 시간 정보를 반영하는지 여부를 나타내는 값으로 사용자 지정 표준 시간대를 만듭니다.

CreateCustomTimeZone(String, TimeSpan, String, String)

지정된 식별자, UTC(협정 세계시)로부터의 오프셋, 표시 이름 및 표준 시간 표시 이름으로 사용자 지정 표준 시간대를 만듭니다.

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

지정된 식별자, UTC(협정 세계시)로부터의 오프셋, 표시 이름, 표준 시간 이름, 일광 절약 시간 이름 및 일광 절약 시간 규칙으로 사용자 지정 표준 시간대를 만듭니다.

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

Source:
TimeZoneInfo.cs
Source:
TimeZoneInfo.cs
Source:
TimeZoneInfo.cs

지정된 식별자, UTC(협정 세계시)로부터의 오프셋, 표시 이름, 표준 시간 이름, 일광 절약 시간 이름, 일광 절약 시간 규칙 및 반환된 개체가 일광 절약 시간 정보를 반영하는지 여부를 나타내는 값으로 사용자 지정 표준 시간대를 만듭니다.

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

매개 변수

id
String

표준 시간대의 식별자입니다.

baseUtcOffset
TimeSpan

이 표준 시간대와 UTC(협정 세계시) 사이의 시간 차이를 나타내는 TimeSpan 개체입니다.

displayName
String

새 표준 시간대의 표시 이름입니다.

standardDisplayName
String

새 표준 시간대의 표준 시간 이름입니다.

daylightDisplayName
String

새 표준 시간대의 일광 절약 시간 이름입니다.

adjustmentRules
TimeZoneInfo.AdjustmentRule[]

특정 기간의 기본 UTC 오프셋을 확대하는 TimeZoneInfo.AdjustmentRule 개체의 배열입니다.

disableDaylightSavingTime
Boolean

새 개체의 adjustmentRules에 있는 모든 일광 절약 시간 관련 정보를 삭제하려는 경우에는 true이고 그러지 않은 경우에는 false입니다.

반환

새 표준 시간대입니다. disableDaylightSavingTime 매개 변수가 true이면 반환되는 개체에 일광 절약 시간 데이터가 없습니다.

예외

id 매개 변수가 null인 경우

id 매개 변수가 빈 문자열("")입니다.

또는

baseUtcOffset 매개 변수가 전체 시간(분)을 나타내지 않습니다.

baseUtcOffset 매개 변수가 14시간보다 크거나 -14시간보다 작습니다.

adjustmentRules 매개 변수 겹침에서 지정된 조정 규칙입니다.

또는

adjustmentRules 매개 변수에서 지정된 조정 규칙은 시간 순서가 아닙니다.

또는

adjustmentRules에서 하나 이상의 요소가 null입니다.

또는

날짜에 여러 조정 규칙이 적용되었을 수 있습니다.

또는

adjustmentRules 배열에서 하나 이상의 개체에 대한 baseUtcOffset 매개 변수 및 DaylightDelta 값의 합계는 14시간보다 크거나 -14시간보다 작습니다.

예제

다음 예제에서는 남극의 팔머 역과 Anvers Island에 대한 사용자 지정 표준 시간대를 만듭니다. 메서드 true호출에서 disableDaylightSavingTime 매개 변수를 TimeZoneInfo.CreateCustomTimeZone 로 설정합니다. 그런 다음 새 표준 시간대의 일광 절약 시간 이름(있는 경우)과 새 표준 시간대에 일광 절약 시간 정보가 없는지 확인하는 조정 규칙 수를 표시합니다.

// 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)

설명

메서드의 이 오버로드를 TimeZoneInfo.CreateCustomTimeZone 사용하여 런타임 시 조건에 따라 일광 절약 시간 지원을 확인할 수 있는 사용자 지정 표준 시간대를 만들 수 있습니다.

다음 표에서는 메서드에 제공된 TimeZoneInfo.CreateCustomTimeZone 매개 변수와 메서드 호출에서 반환되는 개체의 TimeZoneInfo 멤버 간의 관계를 보여 줍니다.

CreateCustomTimeZone 매개 변수 TimeZoneInfo 속성
id Id
baseUtcOffset BaseUtcOffset
displayName DisplayName
standardDisplayName StandardName
daylightDisplayName DaylightName 가 이면 disableDaylightSavingTimefalseString.Empty , 가 이면 disableDaylightSavingTime 입니다 true.
adjustmentRules 가 이면 disableDaylightSavingTime 메서드에서 반환된 GetAdjustmentRules 개체의 TimeZoneInfo.AdjustmentRule 배열이고false, 가 이면 disableDaylightSavingTime 메서드에서 GetAdjustmentRules 반환된 빈 배열입니다true.
disableDaylightSavingTime 하지 SupportsDaylightSavingTime합니다.

일반적으로 표준 시간대의 표준 시간대 이름과 식별자는 동일합니다. 그러나 표준 시간대 식별자의 길이는 32자를 초과하면 안 됩니다. 매개 변수에 전달된 문자열은 displayName 상당히 표준 형식을 따릅니다. 표시 이름의 첫 번째 부분은 괄호로 묶인 약어 GMT(그리니치 표준시)로 표시되는 협정 세계시에서 표준 시간대의 기본 오프셋입니다. 그 뒤에 표준 시간대 자체를 식별하는 문자열 또는 표준 시간대의 하나 이상의 도시, 지역 또는 국가 또는 둘 다를 식별하는 문자열이 뒤따릅니다. 예를 들면 다음과 같습니다.

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

표준 시간대의 조정 규칙은 다음을 수행하여 정의됩니다.

  1. 또는 메서드를 CreateFloatingDateRuleCreateFixedDateRule 호출하여 각 조정 규칙에 대한 시작 및 종료 전환 규칙을 정의합니다.

  2. CreateAdjustmentRule 각 조정 규칙에 대해 메서드를 호출합니다.

  3. 매개 변수로 전달할 수 있는 배열에 조정 규칙을 할당합니다 adjustmentRules .

매개 변수가 인 false경우 disableDaylightSavingTime 이 메서드의 작업은 오버로드와 TimeZoneInfo.CreateCustomTimeZone 동일합니다. 가 이truedisableDaylightSavingTime 반환된 개체에는 조정 규칙이 없고 값이 DaylightName 빈 문자열인 속성이 포함됩니다.

추가 정보

적용 대상

CreateCustomTimeZone(String, TimeSpan, String, String)

Source:
TimeZoneInfo.cs
Source:
TimeZoneInfo.cs
Source:
TimeZoneInfo.cs

지정된 식별자, UTC(협정 세계시)로부터의 오프셋, 표시 이름 및 표준 시간 표시 이름으로 사용자 지정 표준 시간대를 만듭니다.

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

매개 변수

id
String

표준 시간대의 식별자입니다.

baseUtcOffset
TimeSpan

이 표준 시간대와 UTC(협정 세계시) 사이의 시간 차이를 나타내는 개체입니다.

displayName
String

새 표준 시간대의 표시 이름입니다.

standardDisplayName
String

새 표준 시간대 표준 시간의 이름입니다.

반환

새 표준 시간대입니다.

예외

id 매개 변수가 null인 경우

id 매개 변수가 빈 문자열("")입니다.

또는

baseUtcOffset 매개 변수가 전체 시간(분)을 나타내지 않습니다.

baseUtcOffset 매개 변수가 14시간보다 크거나 -14시간보다 작습니다.

예제

다음 예제에서는 남극 대륙의 Mawson 및 Holme Bay 지역에 대한 사용자 지정 표준 시간대를 만듭니다. 그런 다음 현지 시간을 새 표준 시간대의 시간으로 변환한 결과를 표시합니다.

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)

설명

이 메서드 오버 CreateCustomTimeZone(String, TimeSpan, String, String) 로드는 조정이 없는 표준 시간대(즉, 일광 절약 시간을 지원하지 않는 표준 시간대)를 만드는 데 적합합니다. 일광 절약 시간 조정을 포함하는 표준 시간대를 정의하려면 또는 메서드를 TimeZoneInfo.CreateCustomTimeZoneTimeZoneInfo.CreateCustomTimeZone 사용합니다.

다음 표에서는 메서드에 제공된 TimeZoneInfo.CreateCustomTimeZone 매개 변수와 메서드 호출에서 반환되는 개체의 TimeZoneInfo 속성 간의 관계를 보여 줍니다.

CreateCustomTimeZone 매개 변수 TimeZoneInfo 속성
id Id
baseUtcOffset BaseUtcOffset
displayName DisplayName
standardDisplayName StandardName

일반적으로 표준 시간대의 표준 시간대 이름과 식별자는 동일합니다. 그러나 표준 시간대 식별자의 길이는 32자를 초과하면 안 됩니다. 매개 변수에 전달된 문자열은 displayName 상당히 표준 형식을 따릅니다. 표시 이름의 첫 번째 부분은 괄호로 묶인 약어 GMT(그리니치 표준시)로 표시되는 협정 세계시에서 표준 시간대의 기본 오프셋입니다. 그 뒤에 표준 시간대 자체를 식별하는 문자열 또는 표준 시간대의 하나 이상의 도시, 지역 또는 국가 또는 둘 다를 식별하는 문자열이 뒤따릅니다. 예를 들면 다음과 같습니다.

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

추가 정보

적용 대상

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

Source:
TimeZoneInfo.cs
Source:
TimeZoneInfo.cs
Source:
TimeZoneInfo.cs

지정된 식별자, UTC(협정 세계시)로부터의 오프셋, 표시 이름, 표준 시간 이름, 일광 절약 시간 이름 및 일광 절약 시간 규칙으로 사용자 지정 표준 시간대를 만듭니다.

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

매개 변수

id
String

표준 시간대의 식별자입니다.

baseUtcOffset
TimeSpan

이 표준 시간대와 UTC(협정 세계시) 사이의 시간 차이를 나타내는 개체입니다.

displayName
String

새 표준 시간대의 표시 이름입니다.

standardDisplayName
String

새 표준 시간대의 표준 시간 이름입니다.

daylightDisplayName
String

새 표준 시간대의 일광 절약 시간 이름입니다.

adjustmentRules
TimeZoneInfo.AdjustmentRule[]

특정 기간의 기본 UTC 오프셋을 확대하는 배열입니다.

반환

새 표준 시간대를 나타내는 TimeZoneInfo 개체입니다.

예외

id 매개 변수가 null인 경우

id 매개 변수가 빈 문자열("")입니다.

또는

baseUtcOffset 매개 변수가 전체 시간(분)을 나타내지 않습니다.

baseUtcOffset 매개 변수가 14시간보다 크거나 -14시간보다 작습니다.

adjustmentRules 매개 변수 겹침에서 지정된 조정 규칙입니다.

또는

adjustmentRules 매개 변수에서 지정된 조정 규칙은 시간 순서가 아닙니다.

또는

adjustmentRules에서 하나 이상의 요소가 null입니다.

또는

날짜에 여러 조정 규칙이 적용되었을 수 있습니다.

또는

adjustmentRules 배열에서 하나 이상의 개체에 대한 baseUtcOffset 매개 변수 및 DaylightDelta 값의 합계는 14시간보다 크거나 -14시간보다 작습니다.

예제

다음 예제에서는 남극의 팔머 역과 Anvers Island에 대한 사용자 지정 표준 시간대를 만듭니다. 그런 다음 현지 시간을 새 표준 시간대의 시간으로 변환하고 결과를 표시합니다.

// 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)

설명

메서드의 TimeZoneInfo.CreateCustomTimeZone 이 오버로드는 일광 절약 시간을 지원하는 표준 시간대를 만드는 데 적합합니다. 일광 절약 시간을 지원하지 않는 표준 시간대를 정의하려면 또는 메서드를 TimeZoneInfo.CreateCustomTimeZoneTimeZoneInfo.CreateCustomTimeZone 사용합니다.

다음 표에서는 메서드에 제공된 TimeZoneInfo.CreateCustomTimeZone 매개 변수와 메서드 호출에서 반환되는 개체의 TimeZoneInfo 멤버 간의 관계를 보여 줍니다.

CreateCustomTimeZone 매개 변수 TimeZoneInfo 멤버
id Id
baseUtcOffset BaseUtcOffset
displayName DisplayName
standardDisplayName StandardName
daylightDisplayName DaylightName
adjustmentRules 메서드에서 반환된 개체의 System.TimeZoneInfo.AdjustmentRule 배열입니다 GetAdjustmentRules .

일반적으로 표준 시간대의 표준 시간대 이름과 식별자는 동일합니다. 그러나 표준 시간대 식별자의 길이는 32자를 초과하면 안 됩니다. 매개 변수에 전달된 문자열은 displayName 상당히 표준 형식을 따릅니다. 표시 이름의 첫 번째 부분은 괄호로 묶인 약어 GMT(그리니치 표준시)로 표시되는 협정 세계시에서 표준 시간대의 기본 오프셋입니다. 그 뒤에 표준 시간대 자체를 식별하는 문자열 또는 표준 시간대의 하나 이상의 도시, 지역 또는 국가 또는 둘 다를 식별하는 문자열이 뒤따릅니다. 예를 들면 다음과 같습니다.

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

매개 변수는 baseUtcOffset 모든 표준 시간대의 조정 규칙에 대한 UTC(협정 세계시)에서 사용자 지정 표준 시간대의 오프셋을 정의합니다. 즉, TimeZoneInfo 개체 모델은 표준 시간대의 UTC 오프셋이 표준 시간대의 수명 동안 일정하며 특정 조정 규칙과 독립적으로 존재한다고 가정합니다. UTC에서 오프셋을 변경한 표준 시간대를 반영하려면 새 표준 시간대 개체를 만들어야 합니다.

표준 시간대의 조정 규칙은 다음을 수행하여 정의됩니다.

  1. CreateFloatingDateRule 또는 메서드를 CreateFixedDateRule 호출하여 각 조정 규칙의 시작 및 종료 전환 시간을 정의합니다.

  2. CreateAdjustmentRule 각 조정 규칙에 대해 메서드를 호출합니다.

  3. 매개 변수로 전달할 수 있는 배열에 조정 규칙을 할당합니다 adjustmentRules .

추가 정보

적용 대상