TimeZoneInfo.ConvertTimeToUtc 메서드

정의

날짜 및 시간을 UTC(협정 세계시)로 변환합니다.

오버로드

ConvertTimeToUtc(DateTime, TimeZoneInfo)

지정된 표준 시간대의 시간을 UTC(협정 세계시)로 변환합니다.

ConvertTimeToUtc(DateTime)

지정된 날짜 및 시간을 UTC(협정 세계시)로 변환합니다.

ConvertTimeToUtc(DateTime, TimeZoneInfo)

지정된 표준 시간대의 시간을 UTC(협정 세계시)로 변환합니다.

public:
 static DateTime ConvertTimeToUtc(DateTime dateTime, TimeZoneInfo ^ sourceTimeZone);
public static DateTime ConvertTimeToUtc (DateTime dateTime, TimeZoneInfo sourceTimeZone);
static member ConvertTimeToUtc : DateTime * TimeZoneInfo -> DateTime
Public Shared Function ConvertTimeToUtc (dateTime As DateTime, sourceTimeZone As TimeZoneInfo) As DateTime

매개 변수

dateTime
DateTime

변환할 날짜 및 시간입니다.

sourceTimeZone
TimeZoneInfo

dateTime의 표준 시간대입니다.

반환

DateTime

dateTime 매개 변수에 해당하는 UTC(협정 세계시)입니다. DateTime 개체의 Kind 속성은 항상 Utc로 설정됩니다.

예외

dateTime.Kind UtcsourceTimeZoneUtc과 다른 경우

또는 dateTime.Kind LocalsourceTimeZoneLocal과 다른 경우

또는 sourceTimeZone.IsInvalidDateTime(dateTime)에서 true를 반환하는 경우

sourceTimeZone이(가) null인 경우

예제

다음 예제에서는 로컬 시스템에서 현재 날짜를 검색하고 UTC(협정 세계시)로 변환한 다음 도쿄 표준시로 변환하고 마지막으로 도쿄 표준시에서 UTC로 다시 변환합니다. 두 UTC 시간은 동일합니다.

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
open System

// Get time in local time zone 
let thisTime = DateTime.Now
printfn $"Time in {if TimeZoneInfo.Local.IsDaylightSavingTime thisTime then TimeZoneInfo.Local.DaylightName else TimeZoneInfo.Local.StandardName} zone: {thisTime}"
printfn $"   UTC Time: {TimeZoneInfo.ConvertTimeToUtc(thisTime, TimeZoneInfo.Local)}"
// Get Tokyo Standard Time zone
let tst = TimeZoneInfo.FindSystemTimeZoneById "Tokyo Standard Time"
let tstTime = TimeZoneInfo.ConvertTime(thisTime, TimeZoneInfo.Local, tst)      
printfn $"Time in {if tst.IsDaylightSavingTime tstTime then tst.DaylightName else tst.StandardName} zone: {tstTime}"
printfn $"   UTC Time: {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

설명

매개 변수의 Kind dateTime 속성이 DateTimeKind.Utc 같고 매개 변수가 sourceTimeZone 같으면 변환을 수행하지 않고 이 메서드가 반환 dateTime 됩니다TimeZoneInfo.Utc.

모호한 시간에 해당하는 경우 dateTime 이 메서드는 원본 표준 시간대의 표준 시간이라고 가정합니다. 잘못된 시간에 해당하는 경우 dateTime 이 메서드는 .를 ArgumentExceptionthrow합니다.

UTC(협정 세계시)가 이전 또는 이후인 dateTime 경우 이 메서드는 각각 반환 MinValue 하거나 MaxValue반환DateTime.MaxValue합니다.DateTime.MinValue

추가 정보

적용 대상

ConvertTimeToUtc(DateTime)

지정된 날짜 및 시간을 UTC(협정 세계시)로 변환합니다.

public:
 static DateTime ConvertTimeToUtc(DateTime dateTime);
public static DateTime ConvertTimeToUtc (DateTime dateTime);
static member ConvertTimeToUtc : DateTime -> DateTime
Public Shared Function ConvertTimeToUtc (dateTime As DateTime) As DateTime

매개 변수

dateTime
DateTime

변환할 날짜 및 시간입니다.

반환

DateTime

dateTime 매개 변수에 해당하는 UTC(협정 세계시)입니다. DateTime 값의 Kind 속성은 항상 Utc로 설정됩니다.

예외

TimeZoneInfo.Local.IsInvalidDateTime( dateTime )true를 반환합니다.

예제

다음 예제에서는 속성DateTimeKind.Utc이 각각 , DateTimeKind.LocalDateTimeKind.Unspecified시간 값 Kind 의 변환을 보여 줍니다. 또한 모호하고 잘못된 시간의 변환을 보여 줍니다.

DateTime datNowLocal = DateTime.Now;
Console.WriteLine("Converting {0}, Kind {1}:", datNowLocal, datNowLocal.Kind);
Console.WriteLine("   ConvertTimeToUtc: {0}, Kind {1}", TimeZoneInfo.ConvertTimeToUtc(datNowLocal), TimeZoneInfo.ConvertTimeToUtc(datNowLocal).Kind);
Console.WriteLine();

DateTime datNowUtc = DateTime.UtcNow;
Console.WriteLine("Converting {0}, Kind {1}", datNowUtc, datNowUtc.Kind);
Console.WriteLine("   ConvertTimeToUtc: {0}, Kind {1}", TimeZoneInfo.ConvertTimeToUtc(datNowUtc), TimeZoneInfo.ConvertTimeToUtc(datNowUtc).Kind);
Console.WriteLine();

DateTime datNow = new DateTime(2007, 10, 26, 13, 32, 00);
Console.WriteLine("Converting {0}, Kind {1}", datNow, datNow.Kind);
Console.WriteLine("   ConvertTimeToUtc: {0}, Kind {1}", TimeZoneInfo.ConvertTimeToUtc(datNow), TimeZoneInfo.ConvertTimeToUtc(datNow).Kind);
Console.WriteLine();

DateTime datAmbiguous = new DateTime(2007, 11, 4, 1, 30, 00);    
Console.WriteLine("Converting {0}, Kind {1}, Ambiguous {2}", datAmbiguous, datAmbiguous.Kind, TimeZoneInfo.Local.IsAmbiguousTime(datAmbiguous));
Console.WriteLine("   ConvertTimeToUtc: {0}, Kind {1}", TimeZoneInfo.ConvertTimeToUtc(datAmbiguous), TimeZoneInfo.ConvertTimeToUtc(datAmbiguous).Kind);
Console.WriteLine();

DateTime datInvalid = new DateTime(2007, 3, 11, 02, 30, 00);    
Console.WriteLine("Converting {0}, Kind {1}, Invalid {2}", datInvalid, datInvalid.Kind, TimeZoneInfo.Local.IsInvalidTime(datInvalid));
try
{
   Console.WriteLine("   ConvertTimeToUtc: {0}, Kind {1}", TimeZoneInfo.ConvertTimeToUtc(datInvalid), TimeZoneInfo.ConvertTimeToUtc(datInvalid).Kind);
}
catch (ArgumentException e)
{   
   Console.WriteLine("   {0}: Cannot convert {1} to UTC.", e.GetType().Name, datInvalid);
}
Console.WriteLine();

DateTime datNearMax = new DateTime(9999, 12, 31, 22, 00, 00);
Console.WriteLine("Converting {0}, Kind {1}", datNearMax, datNearMax.Kind);
Console.WriteLine("   ConvertTimeToUtc: {0}, Kind {1}", TimeZoneInfo.ConvertTimeToUtc(datNearMax), TimeZoneInfo.ConvertTimeToUtc(datNearMax).Kind);
Console.WriteLine();
//
// This example produces the following output if the local time zone 
// is Pacific Standard Time:
//
//    Converting 8/31/2007 2:26:28 PM, Kind Local:
//       ConvertTimeToUtc: 8/31/2007 9:26:28 PM, Kind Utc
//    
//    Converting 8/31/2007 9:26:28 PM, Kind Utc
//       ConvertTimeToUtc: 8/31/2007 9:26:28 PM, Kind Utc
//    
//    Converting 10/26/2007 1:32:00 PM, Kind Unspecified
//       ConvertTimeToUtc: 10/26/2007 8:32:00 PM, Kind Utc
//    
//    Converting 11/4/2007 1:30:00 AM, Kind Unspecified, Ambiguous True
//       ConvertTimeToUtc: 11/4/2007 9:30:00 AM, Kind Utc
//    
//    Converting 3/11/2007 2:30:00 AM, Kind Unspecified, Invalid True
//       ArgumentException: Cannot convert 3/11/2007 2:30:00 AM to UTC.
//    
//    Converting 12/31/9999 10:00:00 PM, Kind Unspecified
//       ConvertTimeToUtc: 12/31/9999 11:59:59 PM, Kind Utc
//
let datNowLocal = DateTime.Now
printfn $"Converting {datNowLocal}, Kind {datNowLocal.Kind}:"
printfn $"   ConvertTimeToUtc: {TimeZoneInfo.ConvertTimeToUtc datNowLocal}, Kind {TimeZoneInfo.ConvertTimeToUtc(datNowLocal).Kind}\n"

let datNowUtc = DateTime.UtcNow
printfn $"Converting {datNowUtc}, Kind {datNowUtc.Kind}"
printfn $"   ConvertTimeToUtc: {TimeZoneInfo.ConvertTimeToUtc datNowUtc}, Kind {TimeZoneInfo.ConvertTimeToUtc(datNowUtc).Kind}\n"

let datNow = DateTime(2007, 10, 26, 13, 32, 00)
printfn $"Converting {datNow}, Kind {datNow.Kind}"
printfn $"   ConvertTimeToUtc: {TimeZoneInfo.ConvertTimeToUtc datNow}, Kind {TimeZoneInfo.ConvertTimeToUtc(datNow).Kind}\n"

let datAmbiguous = DateTime(2007, 11, 4, 1, 30, 00)
printfn $"Converting {datAmbiguous}, Kind {datAmbiguous.Kind}, Ambiguous {TimeZoneInfo.Local.IsAmbiguousTime datAmbiguous}"
printfn $"   ConvertTimeToUtc: {TimeZoneInfo.ConvertTimeToUtc datAmbiguous}, Kind {TimeZoneInfo.ConvertTimeToUtc(datAmbiguous).Kind}\n"

let datInvalid = DateTime(2007, 3, 11, 02, 30, 00)    
printfn $"Converting {datInvalid}, Kind {datInvalid.Kind}, Invalid {TimeZoneInfo.Local.IsInvalidTime datInvalid}"
try
    printfn $"   ConvertTimeToUtc: {TimeZoneInfo.ConvertTimeToUtc datInvalid}, Kind {TimeZoneInfo.ConvertTimeToUtc(datInvalid).Kind}"
with :? ArgumentException as e ->
    printfn $"   {e.GetType().Name}: Cannot convert {datInvalid} to UTC."
printfn ""

let datNearMax = DateTime(9999, 12, 31, 22, 00, 00)
printfn $"Converting {datNearMax}, Kind {datNearMax.Kind}"
printfn $"   ConvertTimeToUtc: {TimeZoneInfo.ConvertTimeToUtc datNearMax}, Kind {TimeZoneInfo.ConvertTimeToUtc(datNearMax).Kind}\n"
//
// This example produces the following output if the local time zone 
// is Pacific Standard Time:
//
//    Converting 8/31/2007 2:26:28 PM, Kind Local:
//       ConvertTimeToUtc: 8/31/2007 9:26:28 PM, Kind Utc
//    
//    Converting 8/31/2007 9:26:28 PM, Kind Utc
//       ConvertTimeToUtc: 8/31/2007 9:26:28 PM, Kind Utc
//    
//    Converting 10/26/2007 1:32:00 PM, Kind Unspecified
//       ConvertTimeToUtc: 10/26/2007 8:32:00 PM, Kind Utc
//    
//    Converting 11/4/2007 1:30:00 AM, Kind Unspecified, Ambiguous True
//       ConvertTimeToUtc: 11/4/2007 9:30:00 AM, Kind Utc
//    
//    Converting 3/11/2007 2:30:00 AM, Kind Unspecified, Invalid True
//       ArgumentException: Cannot convert 3/11/2007 2:30:00 AM to UTC.
//    
//    Converting 12/31/9999 10:00:00 PM, Kind Unspecified
//       ConvertTimeToUtc: 12/31/9999 11:59:59 PM, Kind Utc
//
Dim datNowLocal As Date = Date.Now
Console.WriteLine("Converting {0}, Kind {1}:", datNowLocal, datNowLocal.Kind)
Console.WriteLine("   ConvertTimeToUtc: {0}, Kind {1}", TimeZoneInfo.ConvertTimeToUtc(datNowLocal), TimeZoneInfo.ConvertTimeToUtc(datNowLocal).Kind)
Console.WriteLine()

Dim datNowUtc As Date = Date.UtcNow
Console.WriteLine("Converting {0}, Kind {1}", datNowUtc, datNowUtc.Kind)
Console.WriteLine("   ConvertTimeToUtc: {0}, Kind {1}", TimeZoneInfo.ConvertTimeToUtc(datNowUtc), TimeZoneInfo.ConvertTimeToUtc(datNowUtc).Kind)
Console.WriteLine()

Dim datNow As Date = CDate("10/26/2007 1:32:00 PM")
Console.WriteLine("Converting {0}, Kind {1}", datNow, datNow.Kind)
Console.WriteLine("   ConvertTimeToUtc: {0}, Kind {1}", TimeZoneInfo.ConvertTimeToUtc(datNow), TimeZoneInfo.ConvertTimeToUtc(datNow).Kind)
Console.WriteLine()

Dim datAmbiguous As Date = #11/4/2007 1:30:00AM#    
Console.WriteLine("Converting {0}, Kind {1}, Ambiguous {2}", datAmbiguous, datAmbiguous.Kind, TimeZoneInfo.Local.IsAmbiguousTime(datAmbiguous))
Console.WriteLine("   ConvertTimeToUtc: {0}, Kind {1}", TimeZoneInfo.ConvertTimeToUtc(datAmbiguous), TimeZoneInfo.ConvertTimeToUtc(datAmbiguous).Kind)
Console.WriteLine()

Dim datInvalid As Date = #03/11/2007 2:30:00AM#    
Console.WriteLine("Converting {0}, Kind {1}, Invalid {2}", datInvalid, datInvalid.Kind, TimeZoneInfo.Local.IsInvalidTime(datInvalid))
Try
   Console.WriteLine("   ConvertTimeToUtc: {0}, Kind {1}", TimeZoneInfo.ConvertTimeToUtc(datInvalid), TimeZoneInfo.ConvertTimeToUtc(datInvalid).Kind)
Catch e As ArgumentException
   Console.WriteLine("   {0}: Cannot convert {1} to UTC.", e.GetType().Name, datInvalid)
End Try
Console.WriteLine()

Dim datNearMax As Date = #12/31/9999 10:00:00PM#
Console.WriteLine("Converting {0}, Kind {1}", datNearMax, datNearMax.Kind)
Console.WriteLine("   ConvertTimeToUtc: {0}, Kind {1}", TimeZoneInfo.ConvertTimeToUtc(datNearMax), TimeZoneInfo.ConvertTimeToUtc(datNearMax).Kind)
Console.WriteLine()
'
' This example produces the following output if the local time zone 
' is Pacific Standard Time:
'
'    Converting 8/31/2007 2:26:28 PM, Kind Local:
'       ConvertTimeToUtc: 8/31/2007 9:26:28 PM, Kind Utc
'    
'    Converting 8/31/2007 9:26:28 PM, Kind Utc
'       ConvertTimeToUtc: 8/31/2007 9:26:28 PM, Kind Utc
'    
'    Converting 10/26/2007 1:32:00 PM, Kind Unspecified
'       ConvertTimeToUtc: 10/26/2007 8:32:00 PM, Kind Utc
'    
'    Converting 11/4/2007 1:30:00 AM, Kind Unspecified, Ambiguous True
'       ConvertTimeToUtc: 11/4/2007 9:30:00 AM, Kind Utc
'    
'    Converting 3/11/2007 2:30:00 AM, Kind Unspecified, Invalid True
'       ArgumentException: Cannot convert 3/11/2007 2:30:00 AM to UTC.
'    
'    Converting 12/31/9999 10:00:00 PM, Kind Unspecified
'       ConvertTimeToUtc: 12/31/9999 11:59:59 PM, Kind Utc

설명

수행되는 정확한 변환은 다음 표와 같이 매개 변수의 dateTime 속성 값 Kind 에 따라 달라집니다.

DateTime.Kind 속성 변환
DateTimeKind.Local 현지 시간에서 UTC(협정 세계시)로 변환합니다.
DateTimeKind.Unspecified dateTime 현지 시간으로 가정하고 현지 시간에서 UTC로 변환합니다.
DateTimeKind.Utc 변경되지 않은 값을 반환 dateTime 합니다.

모호한 현지 시간에 해당하는 경우 dateTime 이 메서드는 표준 현지 시간이라고 가정합니다. 잘못된 현지 시간에 해당하는 경우 dateTime 메서드는 .를 ArgumentExceptionthrow합니다.

참고

현재 컴퓨터의 로컬 표준 시간대에 여러 조정 규칙이 포함된 경우 메서드의 ConvertTimeToUtc 이 오버로드는 메서드와 DateTime.ToUniversalTime 다른 TimeZone.ToUniversalTime 결과를 반환할 수 있습니다. TimeZone.ToUniversalTime 항상 날짜 범위 내에 있는지 여부에 dateTime 관계없이 표준 시간대 변환에 현재 조정 규칙을 적용합니다. 또한 .NET Framework 3.5 DateTime.ToUniversalTime 에서 실행할 때 날짜 범위 내에 있는지 여부에 dateTime 관계없이 현재 조정 규칙을 표준 시간대 변환에 적용합니다.

UTC에 해당하는 dateTime 값이 이전 DateTime.MaxValue또는 DateTime.MinValue 이후인 경우 이 메서드는 각각 반환하거나 MaxValue반환 MinValue 합니다.

추가 정보

적용 대상