TimeZoneInfo.ConvertTimeToUtc Método
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Convierte una fecha y hora en hora universal coordinada (UTC).
Sobrecargas
ConvertTimeToUtc(DateTime) |
Convierte la fecha y hora especificadas en hora universal coordinada (UTC). |
ConvertTimeToUtc(DateTime, TimeZoneInfo) |
Convierte la hora de una zona horaria determinada en hora universal coordinada (UTC). |
ConvertTimeToUtc(DateTime)
- Source:
- TimeZoneInfo.cs
- Source:
- TimeZoneInfo.cs
- Source:
- TimeZoneInfo.cs
Convierte la fecha y hora especificadas en hora universal coordinada (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
Parámetros
- dateTime
- DateTime
Fecha y hora que se van a convertir.
Devoluciones
Hora universal coordinada (UTC) correspondiente al parámetro dateTime
. La propiedad Kind del valor DateTime siempre se establece en Utc.
Excepciones
TimeZoneInfo.Local.IsInvalidDateTime(
dateTime
)
devuelve true
.
Ejemplos
En el ejemplo siguiente se muestra la conversión de valores de tiempo cuya Kind propiedad es DateTimeKind.Utc, DateTimeKind.Localy DateTimeKind.Unspecified, respectivamente. También muestra la conversión de tiempos ambiguos e no vá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
Comentarios
La conversión exacta realizada depende del valor de la Kind propiedad del dateTime
parámetro, como se muestra en la tabla siguiente.
Propiedad DateTime.Kind | Conversión |
---|---|
DateTimeKind.Local | Convierte de hora local a hora universal coordinada (UTC). |
DateTimeKind.Unspecified |
dateTime Se supone que es la hora local y se convierte de hora local a UTC. |
DateTimeKind.Utc | Devuelve dateTime sin cambios. |
Si dateTime
corresponde a una hora local ambigua, este método supone que es la hora local estándar. Si dateTime
corresponde a una hora local no válida, el método produce un ArgumentException.
Nota
Si la zona horaria local del equipo actual incluye varias reglas de ajuste, esta sobrecarga del ConvertTimeToUtc método puede devolver resultados que difieren de los TimeZone.ToUniversalTime métodos y DateTime.ToUniversalTime .
TimeZone.ToUniversalTime siempre aplica la regla de ajuste actual a la conversión de zona horaria, independientemente de si se encuentra o no dateTime
dentro de su intervalo de fechas. Y cuando se ejecuta en .NET Framework 3.5, DateTime.ToUniversalTime también aplica la regla de ajuste actual a la conversión de zona horaria, independientemente de si se encuentra o no dateTime
dentro de su intervalo de fechas.
Si el equivalente UTC de dateTime
es anterior DateTime.MinValue o posterior a DateTime.MaxValue, este método devuelve MinValue o MaxValue, respectivamente.
Consulte también
Se aplica a
ConvertTimeToUtc(DateTime, TimeZoneInfo)
- Source:
- TimeZoneInfo.cs
- Source:
- TimeZoneInfo.cs
- Source:
- TimeZoneInfo.cs
Convierte la hora de una zona horaria determinada en hora universal coordinada (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
Parámetros
- dateTime
- DateTime
Fecha y hora que se van a convertir.
- sourceTimeZone
- TimeZoneInfo
Zona horaria de dateTime
.
Devoluciones
Hora universal coordinada (UTC) correspondiente al parámetro dateTime
. La propiedad Kind del objeto DateTime siempre se establece en Utc.
Excepciones
dateTime
.
Kind
es Utc y sourceTimeZone
no es igual a Utc.
O bien
dateTime
.
Kind
es Local y sourceTimeZone
no es igual a Local.
o bien
sourceTimeZone
.IsInvalidDateTime(
dateTime
)
devuelve true
.
sourceTimeZone
es null
.
Ejemplos
En el ejemplo siguiente se recupera la fecha actual del sistema local y se convierte en hora universal coordinada (UTC), se convierte a la hora estándar de Tokio y, por último, se convierte de la hora estándar de Tokio a UTC. Tenga en cuenta que las dos horas UTC son idénticas.
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
Comentarios
Si la Kind propiedad del dateTime
parámetro es igual DateTimeKind.Utc a y el sourceTimeZone
parámetro es igual TimeZoneInfo.Utca , este método devuelve dateTime
sin realizar ninguna conversión.
Si dateTime
corresponde a una hora ambigua, este método supone que es la hora estándar de la zona horaria de origen. Si dateTime
corresponde a una hora no válida, este método produce una ArgumentExceptionexcepción .
Si el equivalente de hora universal coordinada (UTC) de dateTime
es anterior DateTime.MinValue o posterior a , DateTime.MaxValueeste método devuelve MinValue o MaxValue, respectivamente.