TimeZoneInfo.ConvertTimeToUtc Método
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Converte uma data e hora no UTC (Tempo Universal Coordenado).
Sobrecargas
ConvertTimeToUtc(DateTime) |
Converte a data e hora especificadas em UTC (Tempo Universal Coordenado). |
ConvertTimeToUtc(DateTime, TimeZoneInfo) |
Converte o horário em um fuso horário especificado no UTC (Tempo Universal Coordenado). |
ConvertTimeToUtc(DateTime)
- Origem:
- TimeZoneInfo.cs
- Origem:
- TimeZoneInfo.cs
- Origem:
- TimeZoneInfo.cs
Converte a data e hora especificadas em UTC (Tempo Universal Coordenado).
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
Parâmetros
- dateTime
- DateTime
A data e hora a ser convertida.
Retornos
O UTC (Tempo Universal Coordenado) que corresponde ao parâmetro dateTime
. A propriedade Kind do valor DateTime é sempre definida como Utc.
Exceções
TimeZoneInfo.Local.IsInvalidDateTime(
dateTime
)
retorna true
.
Exemplos
O exemplo a seguir ilustra a conversão de valores de tempo cuja Kind propriedade é DateTimeKind.Utc, DateTimeKind.Locale DateTimeKind.Unspecified, respectivamente. Ele também ilustra a conversão de tempos ambíguos e inválidos.
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
Comentários
A conversão exata executada depende do valor da Kind propriedade do dateTime
parâmetro, como mostra a tabela a seguir.
Propriedade DateTime.Kind | Conversão |
---|---|
DateTimeKind.Local | Converte de hora local para UTC (Tempo Universal Coordenado). |
DateTimeKind.Unspecified |
dateTime Pressupõe que seja hora local e converta de hora local para UTC. |
DateTimeKind.Utc | Retorna dateTime inalterado. |
Se dateTime
corresponder a uma hora local ambígua, esse método pressupõe que seja hora local padrão. Se dateTime
corresponder a uma hora local inválida, o método gerará um ArgumentException.
Observação
Se o fuso horário local do computador atual incluir várias regras de ajuste, essa sobrecarga do ConvertTimeToUtc método poderá retornar resultados diferentes dos TimeZone.ToUniversalTime métodos e DateTime.ToUniversalTime .
TimeZone.ToUniversalTime sempre aplica a regra de ajuste atual à conversão de fuso horário, independentemente de estar ou não dateTime
dentro do intervalo de datas. E ao executar no .NET Framework 3.5, DateTime.ToUniversalTime também aplica a regra de ajuste atual à conversão de fuso horário, independentemente de estar ou não dateTime
dentro do intervalo de datas.
Se o equivalente UTC de dateTime
for anterior DateTime.MinValue ou posterior a DateTime.MaxValue, esse método retornará MinValue ou MaxValue, respectivamente.
Confira também
Aplica-se a
ConvertTimeToUtc(DateTime, TimeZoneInfo)
- Origem:
- TimeZoneInfo.cs
- Origem:
- TimeZoneInfo.cs
- Origem:
- TimeZoneInfo.cs
Converte o horário em um fuso horário especificado no UTC (Tempo Universal Coordenado).
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
Parâmetros
- dateTime
- DateTime
A data e hora a ser convertida.
- sourceTimeZone
- TimeZoneInfo
O fuso horário de dateTime
.
Retornos
O UTC (Tempo Universal Coordenado) que corresponde ao parâmetro dateTime
. A propriedade Kind do objeto DateTime é sempre definida como Utc.
Exceções
dateTime
.
Kind
é Utc e sourceTimeZone
não é igual Utca .
- ou -
dateTime
.
Kind
é Local e sourceTimeZone
não é igual Locala .
- ou -
sourceTimeZone
.IsInvalidDateTime(
dateTime
)
retorna true
.
sourceTimeZone
é null
.
Exemplos
O exemplo a seguir recupera a data atual do sistema local e a converte em UTC (Tempo Universal Coordenado), converte-a no Horário Padrão de Tóquio e, por fim, converte-a do Horário Padrão de Tóquio de volta para UTC. Observe que os dois horários UTC são idênticos.
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
Comentários
Se a Kind propriedade do dateTime
parâmetro for igual DateTimeKind.Utc a e o parâmetro for igual TimeZoneInfo.Utca sourceTimeZone
, esse método retornará dateTime
sem executar nenhuma conversão.
Se dateTime
corresponder a um horário ambíguo, esse método pressupõe que seja a hora padrão do fuso horário de origem. Se dateTime
corresponder a um tempo inválido, esse método gerará um ArgumentException.
Se o equivalente de UTC (Tempo Universal Coordenado) for dateTime
anterior DateTime.MinValue ou posterior a DateTime.MaxValue, esse método retornará MinValue ou MaxValue, respectivamente.