TimeZoneInfo.FindSystemTimeZoneById(String) 메서드

정의

해당 식별자에 따라 새 TimeZoneInfo 개체를 인스턴스화합니다.Instantiates a new TimeZoneInfo object based on its identifier.

public:
 static TimeZoneInfo ^ FindSystemTimeZoneById(System::String ^ id);
public static TimeZoneInfo FindSystemTimeZoneById (string id);
static member FindSystemTimeZoneById : string -> TimeZoneInfo
Public Shared Function FindSystemTimeZoneById (id As String) As TimeZoneInfo

매개 변수

id
String

Id 속성에 해당하는 표준 시간대 식별자입니다.The time zone identifier, which corresponds to the Id property.

반환

식별자가 id 매개 변수의 값인 개체입니다.An object whose identifier is the value of the id parameter.

예외

시스템에 표준 시간대에 대한 정보를 저장할 메모리가 부족한 경우The system does not have enough memory to hold information about the time zone.

id 매개 변수는 null입니다.The id parameter is null.

id로 지정된 표준 시간대 식별자를 찾지 못한 경우.The time zone identifier specified by id was not found. 즉, id와 이름이 일치하는 표준 시간대 식별자가 존재하지 않거나 식별자는 존재하지만 표준 시간대 데이터가 포함되지 않습니다.This means that a time zone identifier whose name matches id does not exist, or that the identifier exists but does not contain any time zone data.

프로세스에 표준 시간대 정보를 포함하는 레지스트리 키에서 읽는 데 필요한 권한이 없습니다.The process does not have the permissions required to read from the registry key that contains the time zone information.

표준 시간대 식별자를 찾았지만 레지스트리 데이터가 손상되었습니다.The time zone identifier was found, but the registry data is corrupted.

예제

다음 예제에서는 FindSystemTimeZoneById 메서드를 사용 하 여 도쿄 표준 시간대를 검색 합니다.The following example uses the FindSystemTimeZoneById method to retrieve the Tokyo Standard Time zone. 그런 다음이 TimeZoneInfo 개체를 사용 하 여 현지 시간을 도쿄의 시간으로 변환 하 고 도쿄 표준 시간 또는 도쿄 일광 절약 시간 인지 여부를 확인 합니다.This TimeZoneInfo object is then used to convert the local time to the time in Tokyo and to determine whether it is Tokyo Standard Time or Tokyo Daylight Time.

using System;

public class Example
{
   public static void Main()
   {
      // Get time in local time zone 
      DateTime thisTime = DateTime.Now;
      Console.WriteLine("Time in {0} zone: {1}", TimeZoneInfo.Local.IsDaylightSavingTime(thisTime) ?
                        TimeZoneInfo.Local.DaylightName : TimeZoneInfo.Local.StandardName, thisTime);
      Console.WriteLine("   UTC Time: {0}", TimeZoneInfo.ConvertTimeToUtc(thisTime, TimeZoneInfo.Local));
      // Get Tokyo Standard Time zone
      TimeZoneInfo tst = TimeZoneInfo.FindSystemTimeZoneById("Tokyo Standard Time");
      DateTime tstTime = TimeZoneInfo.ConvertTime(thisTime, TimeZoneInfo.Local, tst);      
      Console.WriteLine("Time in {0} zone: {1}", tst.IsDaylightSavingTime(tstTime) ?
                        tst.DaylightName : tst.StandardName, tstTime);
      Console.WriteLine("   UTC Time: {0}", TimeZoneInfo.ConvertTimeToUtc(tstTime, tst));
   }
}
// The example displays output like the following when run on a system in the
// U.S. Pacific Standard Time zone:
//       Time in Pacific Standard Time zone: 12/6/2013 10:57:51 AM
//          UTC Time: 12/6/2013 6:57:51 PM
//       Time in Tokyo Standard Time zone: 12/7/2013 3:57:51 AM
//          UTC Time: 12/6/2013 6:57:51 PM
Module Example
   Public Sub Main()
      ' Get time in local time zone 
      Dim thisTime As Date = Date.Now
      Console.WriteLine("Time in {0} zone: {1}", IIf(TimeZoneInfo.Local.IsDaylightSavingTime(thisTime), 
                        TimeZoneInfo.Local.DaylightName, TimeZoneInfo.Local.StandardName), thisTime)
      Console.WriteLine("   UTC Time: {0}", TimeZoneInfo.ConvertTimeToUtc(thisTime, TimeZoneInfo.Local))
      ' Get Tokyo Standard Time zone
      Dim tst As TimeZoneInfo = TimeZoneInfo.FindSystemTimeZoneById("Tokyo Standard Time")
      Dim tstTime As Date = TimeZoneInfo.ConvertTime(thisTime, TimeZoneInfo.Local, tst)      
      Console.WriteLine("Time in {0} zone: {1}", IIf(tst.IsDaylightSavingTime(tstTime), 
                        tst.DaylightName, tst.StandardName), tstTime)
      Console.WriteLine("   UTC Time: {0}", TimeZoneInfo.ConvertTimeToUtc(tstTime, tst))
   End Sub
End Module
' The example displays output like the following when run on a system in the U.S.
' Pacific Standard Time zone:
'    Time in Pacific Standard Time zone: 12/6/2013 10:57:51 AM
'       UTC Time: 12/6/2013 6:57:51 PM
'    Time in Tokyo Standard Time zone: 12/7/2013 3:57:51 AM
'       UTC Time: 12/6/2013 6:57:51 PM

설명

성공적으로 일치 하는 항목의 경우 id 매개 변수는 표준 시간대의 식별자와 정확히 일치 해야 하지만 대/소문자는 일치 하지 않습니다. 즉, 표준 시간대 식별자와 id의 비교는 대/소문자를 구분 하지 않습니다.The id parameter must correspond exactly to the time zone's identifier in length, but not in case, for a successful match to occur; that is, the comparison of id with time zone identifiers is case-insensitive. 부분 일치를 기반으로 표준 시간대 개체를 검색 하려는 경우 GetSystemTimeZones 메서드에서 반환 된 TimeZoneInfo 개체의 읽기 전용 컬렉션을 사용 하는 사용자 지정 프로시저를 작성할 수 있습니다.If you want to retrieve time zone objects based on partial matches, you can write custom procedures that work with the read-only collection of TimeZoneInfo objects returned by the GetSystemTimeZones method.

Windows 시스템에서 FindSystemTimeZoneById는 레지스트리의 HKEY_LOCAL_MACHINE \Software\Microsoft\Windows NT\CurrentVersion\Time Zones 분기의 하위 키 이름과 id를 일치 시 키 려 고 시도 합니다.On Windows systems, FindSystemTimeZoneById tries to match id to the subkey names of the HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Time Zones branch of the registry. Linux 및 macOS에서는 ICU 라이브러리에서 사용할 수 있는 표준 시간대 정보를 사용 합니다.On Linux and macOS, it uses time zone information available in the ICU Library. 레지스트리 또는 라이브러리에 원하는 표준 시간대에 대 한 정보가 없는 경우 CreateCustomTimeZone 메서드의 오버 로드 중 하나를 호출 하거나 FromSerializedString를 호출 하 여 필요한 표준 시간대를 나타내는 TimeZoneInfo 개체를 deserialize 함으로써 특정 표준 시간대를 만들 수 있습니다.If the registry or the library does not have the information for the time zone you desire, you can create a particular time zone either by calling one of the overloads of the CreateCustomTimeZone method or by calling FromSerializedString to deserialize a TimeZoneInfo object that represents the required time zone. 그러나 이러한 메서드 호출로 만든 표준 시간대는 시스템 정의 시간이 아니므로 FindSystemTimeZoneById 메서드를 사용 하 여 검색할 수 없습니다.However, time zones created by these method calls are not system-defined time and cannot be retrieved using the FindSystemTimeZoneById method. 이러한 사용자 지정 표준 시간대는 CreateCustomTimeZone 또는 FromSerializedString 메서드 호출에서 반환 된 개체 참조를 통해서만 액세스할 수 있습니다.These custom time zones can be accessed only through the object reference returned by the CreateCustomTimeZone or FromSerializedString method call.

이 메서드는 각 메서드 호출에 대 한 새 TimeZoneInfo 인스턴스를 반환 합니다. 캐시 된 개체는 반환 하지 않습니다.This method returns a new TimeZoneInfo instance for each method call; it does not return cached objects. 이는 동일한 식별자를 사용 하 여 FindSystemTimeZoneById 메서드를 반복적으로 호출 하는 응용 프로그램의 성능에 영향을 줄 수 있습니다.This may impact performance in applications that call the FindSystemTimeZoneById method repeatedly with the same identifier.

적용 대상

추가 정보