DateTime.ToUniversalTime Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Převede hodnotu aktuálního DateTime objektu na koordinovaný univerzální čas (UTC).
public:
DateTime ToUniversalTime();
public DateTime ToUniversalTime ();
member this.ToUniversalTime : unit -> DateTime
Public Function ToUniversalTime () As DateTime
Návraty
Objekt, jehož Kind vlastnost je Utc, a jehož hodnota je ekvivalentem utc k hodnotě aktuálního DateTime objektu, nebo DateTime.MaxValue , pokud je převedená hodnota příliš velká, aby byla reprezentována objektem DateTime , nebo DateTime.MinValue , pokud je převedená hodnota příliš malá, aby byla reprezentována objektem DateTime .
Příklady
Následující příklad ukazuje metodu ToUniversalTime .
using namespace System;
void main()
{
Console::WriteLine("Enter a date and time.");
String^ strDateTime = Console::ReadLine();
DateTime localDateTime, univDateTime;
try
{
localDateTime = DateTime::Parse(strDateTime);
univDateTime = localDateTime.ToUniversalTime();
Console::WriteLine("{0} local time is {1} universal time.",
localDateTime, univDateTime );
}
catch (FormatException^)
{
Console::WriteLine("Invalid format.");
return;
}
Console::WriteLine("Enter a date and time in universal time.");
strDateTime = Console::ReadLine();
try
{
univDateTime = DateTime::Parse(strDateTime);
localDateTime = univDateTime.ToLocalTime();
Console::WriteLine("{0} universal time is {1} local time.",
univDateTime, localDateTime );
}
catch (FormatException^)
{
Console::WriteLine("Invalid format.");
return;
}
}
// The example displays output like the following when run on a
// computer whose culture is en-US in the Pacific Standard Time zone:
// Enter a date and time.
// 12/10/2015 6:18 AM
// 12/10/2015 6:18:00 AM local time is 12/10/2015 2:18:00 PM universal time.
// Enter a date and time in universal time.
// 12/20/2015 6:42:00
// 12/20/2015 6:42:00 AM universal time is 12/19/2015 10:42:00 PM local time.
open System
printfn "Enter a date and time."
try
let strDateTime = stdin.ReadLine()
let localDateTime = DateTime.Parse strDateTime
let univDateTime = localDateTime.ToUniversalTime()
printfn $"{localDateTime} local time is {univDateTime} universal time."
with :? FormatException ->
printfn "Invalid format."
printfn "Enter a date and time in universal time."
try
let strDateTime = stdin.ReadLine()
let univDateTime = DateTime.Parse strDateTime
let localDateTime = univDateTime.ToLocalTime()
printfn $"{univDateTime} universal time is {localDateTime} local time."
with :? FormatException ->
printfn "Invalid format."
// The example displays output like the following when run on a
// computer whose culture is en-US in the Pacific Standard Time zone:
// Enter a date and time.
// 12/10/2015 6:18 AM
// 12/10/2015 6:18:00 AM local time is 12/10/2015 2:18:00 PM universal time.
// Enter a date and time in universal time.
// 12/20/2015 6:42:00
// 12/20/2015 6:42:00 AM universal time is 12/19/2015 10:42:00 PM local time.
using System;
class Example
{
static void Main()
{
DateTime localDateTime, univDateTime;
Console.WriteLine("Enter a date and time.");
string strDateTime = Console.ReadLine();
try {
localDateTime = DateTime.Parse(strDateTime);
univDateTime = localDateTime.ToUniversalTime();
Console.WriteLine("{0} local time is {1} universal time.",
localDateTime,
univDateTime);
}
catch (FormatException) {
Console.WriteLine("Invalid format.");
return;
}
Console.WriteLine("Enter a date and time in universal time.");
strDateTime = Console.ReadLine();
try {
univDateTime = DateTime.Parse(strDateTime);
localDateTime = univDateTime.ToLocalTime();
Console.WriteLine("{0} universal time is {1} local time.",
univDateTime,
localDateTime);
}
catch (FormatException) {
Console.WriteLine("Invalid format.");
return;
}
}
}
// The example displays output like the following when run on a
// computer whose culture is en-US in the Pacific Standard Time zone:
// Enter a date and time.
// 12/10/2015 6:18 AM
// 12/10/2015 6:18:00 AM local time is 12/10/2015 2:18:00 PM universal time.
// Enter a date and time in universal time.
// 12/20/2015 6:42:00
// 12/20/2015 6:42:00 AM universal time is 12/19/2015 10:42:00 PM local time.
Module Example
Sub Main()
Dim localDateTime, univDateTime As DateTime
Console.WriteLine("Enter a date and time.")
Dim strDateTime As String = Console.ReadLine()
Try
localDateTime = DateTime.Parse(strDateTime)
univDateTime = localDateTime.ToUniversalTime()
Console.WriteLine("{0} local time is {1} universal time.",
localDateTime, univDateTime)
Catch exp As FormatException
Console.WriteLine("Invalid format.")
End Try
Console.WriteLine("Enter a date and time in universal time.")
strDateTime = Console.ReadLine()
Try
univDateTime = DateTime.Parse(strDateTime)
localDateTime = univDateTime.ToLocalTime()
Console.WriteLine("{0} universal time is {1} local time.", _
univDateTime, localDateTime)
Catch exp As FormatException
Console.WriteLine("Invalid format.")
End Try
End Sub
End Module
' The example displays output like the following when run on a
' computer whose culture is en-US in the Pacific Standard Time zone:
' Enter a date and time.
' 12/10/2015 6:18 AM
' 12/10/2015 6:18:00 AM local time is 12/10/2015 2:18:00 PM universal time.
' Enter a date and time in universal time.
' 12/20/2015 6:42:00
' 12/20/2015 6:42:00 AM universal time is 12/19/2015 10:42:00 PM local time.
Následující příklad používá metodu SpecifyKind k předvedeníKind, jak vlastnost ovlivňuje metody a ToUniversalTime převoduToLocalTime.
// This code example demonstrates the DateTime Kind, Now, and
// UtcNow properties, and the SpecifyKind(), ToLocalTime(),
// and ToUniversalTime() methods.
open System
// Display the value and Kind property of a DateTime structure, the
// DateTime structure converted to local time, and the DateTime
// structure converted to universal time.
let datePatt = @"M/d/yyyy hh:mm:ss tt"
let display title (inputDt: DateTime) =
// Display the original DateTime.
let dispDt = inputDt
let dtString = dispDt.ToString datePatt
printfn $"%s{title} {dtString}, Kind = {dispDt.Kind}"
// Convert inputDt to local time and display the result.
// If inputDt.Kind is DateTimeKind.Utc, the conversion is performed.
// If inputDt.Kind is DateTimeKind.Local, the conversion is not performed.
// If inputDt.Kind is DateTimeKind.Unspecified, the conversion is
// performed as if inputDt was universal time.
let dispDt = inputDt.ToLocalTime()
let dtString = dispDt.ToString datePatt
printfn $" ToLocalTime: {dtString}, Kind = {dispDt.Kind}"
// Convert inputDt to universal time and display the result.
// If inputDt.Kind is DateTimeKind.Utc, the conversion is not performed.
// If inputDt.Kind is DateTimeKind.Local, the conversion is performed.
// If inputDt.Kind is DateTimeKind.Unspecified, the conversion is
// performed as if inputDt was local time.
let dispDt = inputDt.ToUniversalTime()
let dtString = dispDt.ToString datePatt
printfn $" ToUniversalTime: {dtString}, Kind = {dispDt.Kind}\n"
// Display the value and Kind property for DateTime.Now and DateTime.UtcNow.
let displayNow title (inputDt: DateTime) =
let dtString = inputDt.ToString datePatt
printfn $"%s{title} {dtString}, Kind = {inputDt.Kind}"
[<EntryPoint>]
let main _ =
// Get the date and time for the current moment, adjusted
// to the local time zone.
let saveNow = DateTime.Now
// Get the date and time for the current moment expressed
// as coordinated universal time (UTC).
let saveUtcNow = DateTime.UtcNow
// Display the value and Kind property of the current moment
// expressed as UTC and local time.
displayNow "UtcNow: .........." saveUtcNow
displayNow "Now: ............." saveNow
printfn ""
// Change the Kind property of the current moment to
// DateTimeKind.Utc and display the result.
let myDt = DateTime.SpecifyKind(saveNow, DateTimeKind.Utc)
display "Utc: ............." myDt
// Change the Kind property of the current moment to
// DateTimeKind.Local and display the result.
let myDt = DateTime.SpecifyKind(saveNow, DateTimeKind.Local)
display "Local: ..........." myDt
// Change the Kind property of the current moment to
// DateTimeKind.Unspecified and display the result.
let myDt = DateTime.SpecifyKind(saveNow, DateTimeKind.Unspecified)
display "Unspecified: ....." myDt
0
// This code example produces the following results:
//
// UtcNow: .......... 5/6/2005 09:34:42 PM, Kind = Utc
// Now: ............. 5/6/2005 02:34:42 PM, Kind = Local
//
// Utc: ............. 5/6/2005 02:34:42 PM, Kind = Utc
// ToLocalTime: 5/6/2005 07:34:42 AM, Kind = Local
// ToUniversalTime: 5/6/2005 02:34:42 PM, Kind = Utc
//
// Local: ........... 5/6/2005 02:34:42 PM, Kind = Local
// ToLocalTime: 5/6/2005 02:34:42 PM, Kind = Local
// ToUniversalTime: 5/6/2005 09:34:42 PM, Kind = Utc
//
// Unspecified: ..... 5/6/2005 02:34:42 PM, Kind = Unspecified
// ToLocalTime: 5/6/2005 07:34:42 AM, Kind = Local
// ToUniversalTime: 5/6/2005 09:34:42 PM, Kind = Utc
// This code example demonstrates the DateTime Kind, Now, and
// UtcNow properties, and the SpecifyKind(), ToLocalTime(),
// and ToUniversalTime() methods.
using System;
class Sample
{
public static void Main()
{
// Get the date and time for the current moment, adjusted
// to the local time zone.
DateTime saveNow = DateTime.Now;
// Get the date and time for the current moment expressed
// as coordinated universal time (UTC).
DateTime saveUtcNow = DateTime.UtcNow;
DateTime myDt;
// Display the value and Kind property of the current moment
// expressed as UTC and local time.
DisplayNow("UtcNow: ..........", saveUtcNow);
DisplayNow("Now: .............", saveNow);
Console.WriteLine();
// Change the Kind property of the current moment to
// DateTimeKind.Utc and display the result.
myDt = DateTime.SpecifyKind(saveNow, DateTimeKind.Utc);
Display("Utc: .............", myDt);
// Change the Kind property of the current moment to
// DateTimeKind.Local and display the result.
myDt = DateTime.SpecifyKind(saveNow, DateTimeKind.Local);
Display("Local: ...........", myDt);
// Change the Kind property of the current moment to
// DateTimeKind.Unspecified and display the result.
myDt = DateTime.SpecifyKind(saveNow, DateTimeKind.Unspecified);
Display("Unspecified: .....", myDt);
}
// Display the value and Kind property of a DateTime structure, the
// DateTime structure converted to local time, and the DateTime
// structure converted to universal time.
public static string datePatt = @"M/d/yyyy hh:mm:ss tt";
public static void Display(string title, DateTime inputDt)
{
DateTime dispDt = inputDt;
string dtString;
// Display the original DateTime.
dtString = dispDt.ToString(datePatt);
Console.WriteLine("{0} {1}, Kind = {2}",
title, dtString, dispDt.Kind);
// Convert inputDt to local time and display the result.
// If inputDt.Kind is DateTimeKind.Utc, the conversion is performed.
// If inputDt.Kind is DateTimeKind.Local, the conversion is not performed.
// If inputDt.Kind is DateTimeKind.Unspecified, the conversion is
// performed as if inputDt was universal time.
dispDt = inputDt.ToLocalTime();
dtString = dispDt.ToString(datePatt);
Console.WriteLine(" ToLocalTime: {0}, Kind = {1}",
dtString, dispDt.Kind);
// Convert inputDt to universal time and display the result.
// If inputDt.Kind is DateTimeKind.Utc, the conversion is not performed.
// If inputDt.Kind is DateTimeKind.Local, the conversion is performed.
// If inputDt.Kind is DateTimeKind.Unspecified, the conversion is
// performed as if inputDt was local time.
dispDt = inputDt.ToUniversalTime();
dtString = dispDt.ToString(datePatt);
Console.WriteLine(" ToUniversalTime: {0}, Kind = {1}",
dtString, dispDt.Kind);
Console.WriteLine();
}
// Display the value and Kind property for DateTime.Now and DateTime.UtcNow.
public static void DisplayNow(string title, DateTime inputDt)
{
string dtString = inputDt.ToString(datePatt);
Console.WriteLine("{0} {1}, Kind = {2}",
title, dtString, inputDt.Kind);
}
}
/*
This code example produces the following results:
UtcNow: .......... 5/6/2005 09:34:42 PM, Kind = Utc
Now: ............. 5/6/2005 02:34:42 PM, Kind = Local
Utc: ............. 5/6/2005 02:34:42 PM, Kind = Utc
ToLocalTime: 5/6/2005 07:34:42 AM, Kind = Local
ToUniversalTime: 5/6/2005 02:34:42 PM, Kind = Utc
Local: ........... 5/6/2005 02:34:42 PM, Kind = Local
ToLocalTime: 5/6/2005 02:34:42 PM, Kind = Local
ToUniversalTime: 5/6/2005 09:34:42 PM, Kind = Utc
Unspecified: ..... 5/6/2005 02:34:42 PM, Kind = Unspecified
ToLocalTime: 5/6/2005 07:34:42 AM, Kind = Local
ToUniversalTime: 5/6/2005 09:34:42 PM, Kind = Utc
*/
' This code example demonstrates the DateTime Kind, Now, and
' UtcNow properties, and the SpecifyKind(), ToLocalTime(),
' and ToUniversalTime() methods.
Class Sample
Public Shared Sub Main()
' Get the date and time for the current moment, adjusted
' to the local time zone.
Dim saveNow As DateTime = DateTime.Now
' Get the date and time for the current moment expressed
' as coordinated universal time (UTC).
Dim saveUtcNow As DateTime = DateTime.UtcNow
Dim myDt As DateTime
' Display the value and Kind property of the current moment
' expressed as UTC and local time.
DisplayNow("UtcNow: ..........", saveUtcNow)
DisplayNow("Now: .............", saveNow)
Console.WriteLine()
' Change the Kind property of the current moment to
' DateTimeKind.Utc and display the result.
myDt = DateTime.SpecifyKind(saveNow, DateTimeKind.Utc)
Display("Utc: .............", myDt)
' Change the Kind property of the current moment to
' DateTimeKind.Local and display the result.
myDt = DateTime.SpecifyKind(saveNow, DateTimeKind.Local)
Display("Local: ...........", myDt)
' Change the Kind property of the current moment to
' DateTimeKind.Unspecified and display the result.
myDt = DateTime.SpecifyKind(saveNow, DateTimeKind.Unspecified)
Display("Unspecified: .....", myDt)
End Sub
' Display the value and Kind property of a DateTime structure, the
' DateTime structure converted to local time, and the DateTime
' structure converted to universal time.
Public Shared datePatt As String = "M/d/yyyy hh:mm:ss tt"
Public Shared Sub Display(ByVal title As String, ByVal inputDt As DateTime)
Dim dispDt As DateTime = inputDt
Dim dtString As String
' Display the original DateTime.
dtString = dispDt.ToString(datePatt)
Console.WriteLine("{0} {1}, Kind = {2}", title, dtString, dispDt.Kind)
' Convert inputDt to local time and display the result.
' If inputDt.Kind is DateTimeKind.Utc, the conversion is performed.
' If inputDt.Kind is DateTimeKind.Local, the conversion is not performed.
' If inputDt.Kind is DateTimeKind.Unspecified, the conversion is
' performed as if inputDt was universal time.
dispDt = inputDt.ToLocalTime()
dtString = dispDt.ToString(datePatt)
Console.WriteLine(" ToLocalTime: {0}, Kind = {1}", dtString, dispDt.Kind)
' Convert inputDt to universal time and display the result.
' If inputDt.Kind is DateTimeKind.Utc, the conversion is not performed.
' If inputDt.Kind is DateTimeKind.Local, the conversion is performed.
' If inputDt.Kind is DateTimeKind.Unspecified, the conversion is
' performed as if inputDt was local time.
dispDt = inputDt.ToUniversalTime()
dtString = dispDt.ToString(datePatt)
Console.WriteLine(" ToUniversalTime: {0}, Kind = {1}", dtString, dispDt.Kind)
Console.WriteLine()
End Sub
' Display the value and Kind property for DateTime.Now and DateTime.UtcNow.
Public Shared Sub DisplayNow(ByVal title As String, ByVal inputDt As DateTime)
Dim dtString As String = inputDt.ToString(datePatt)
Console.WriteLine("{0} {1}, Kind = {2}", title, dtString, inputDt.Kind)
End Sub
End Class
'
'This code example produces the following results:
'
'UtcNow: .......... 5/6/2005 09:34:42 PM, Kind = Utc
'Now: ............. 5/6/2005 02:34:42 PM, Kind = Local
'
'Utc: ............. 5/6/2005 02:34:42 PM, Kind = Utc
' ToLocalTime: 5/6/2005 07:34:42 AM, Kind = Local
' ToUniversalTime: 5/6/2005 02:34:42 PM, Kind = Utc
'
'Local: ........... 5/6/2005 02:34:42 PM, Kind = Local
' ToLocalTime: 5/6/2005 02:34:42 PM, Kind = Local
' ToUniversalTime: 5/6/2005 09:34:42 PM, Kind = Utc
'
'Unspecified: ..... 5/6/2005 02:34:42 PM, Kind = Unspecified
' ToLocalTime: 5/6/2005 07:34:42 AM, Kind = Local
' ToUniversalTime: 5/6/2005 09:34:42 PM, Kind = Utc
'
Poznámky
Koordinovaný světový čas (UTC) se rovná místnímu času minus posun UTC. Další informace o posunu UTC najdete v tématu TimeZoneInfo.GetUtcOffset. Převod také bere v úvahu pravidlo letního času, které se vztahuje na čas reprezentovaný aktuálním DateTime objektem.
Důležité
V systémech ToUniversalTime Windows XP metoda rozpoznává pouze aktuální pravidlo úpravy při převodu z místního času na UTC. V důsledku toho nemusí převody období před tím, než vstoupilo v platnost aktuální pravidlo úpravy, přesně odrážet rozdíl mezi místním časem a časem UTC.
Počínaje rozhraním .NET Framework verze 2.0 je hodnota vrácená ToUniversalTime metodou určena Kind vlastností aktuálního DateTime objektu. Následující tabulka popisuje možné výsledky.
Druh | Výsledky |
---|---|
Utc | Neprovádí se žádný převod. |
Local | Aktuální DateTime objekt se převede na UTC. |
Unspecified | Předpokládá se, že aktuální DateTime objekt je místní čas a převod se provádí jako .KindLocal |
Poznámka
Metoda ToUniversalTime převede DateTime hodnotu z místního času na UTC. Pokud chcete převést čas v nelokálovém časovém pásmu na UTC, použijte metodu TimeZoneInfo.ConvertTimeToUtc(DateTime, TimeZoneInfo) . Pokud chcete převést čas, jehož posun od UTC je známý, použijte metodu ToUniversalTime .
Pokud je hodnota instance data a času nejednoznačný čas, tato metoda předpokládá, že se jedná o standardní čas. (Nejednoznačný čas je čas, který se může mapovat buď na standardní čas, nebo na letní čas v místním časovém pásmu.) Pokud je hodnota instance data a času neplatným časem, tato metoda jednoduše odečte místní čas od posunu UTC místního časového pásma, aby vrátila utc. (Neplatný čas je ten, který neexistuje z důvodu použití pravidel úprav letního času.)
Poznámky pro volající
Metoda se ToUniversalTime() někdy používá k převodu místního času na UTC. Metoda ToLocalTime() je pak volána k obnovení původního místního času. Pokud však původní čas představuje neplatný čas v místním časovém pásmu, nebudou dvě hodnoty místního času rovny. Další informace a příklad najdete v ToLocalTime() metodě.
V systémech ToUniversalTime() Windows XP metoda rozpoznává pouze aktuální pravidlo úpravy pro místní časové pásmo, které se vztahuje na všechna data, včetně dat nižší úrovně (to znamená, že jsou dřívější než počáteční datum aktuálního pravidla úpravy). Aplikace spuštěné v systému Windows XP, které vyžadují historicky přesné místní výpočty data a času, musí toto chování obejít pomocí FindSystemTimeZoneById(String) metody k načtení objektu TimeZoneInfo , který odpovídá místnímu časovému pásmu, a volání jeho ConvertTimeToUtc(DateTime, TimeZoneInfo) metody.
Následující příklad znázorňuje rozdíl mezi ToUniversalTime() metodami a ConvertTimeToUtc(DateTime, TimeZoneInfo) v systému Windows XP v americkém tichomořském časovém pásmu. První dvě volání metody aplikují aktuální pravidlo úpravy časového pásma (které bylo platné v roce 2007) na datum v roce 2006. Aktuální pravidlo úpravy umožňuje přechod na letní čas druhou březnovou neděli; předchozí pravidlo, které bylo účinné v roce 2006, řídilo přechod na letní čas první dubnovou neděli. Pouze třetí volání metody přesně provede tento historický převod data a času.
using System;
public class Example
{
public static void Main()
{
DateTime date1 = new DateTime(2006, 3, 21, 2, 0, 0);
Console.WriteLine(date1.ToUniversalTime());
Console.WriteLine(TimeZoneInfo.ConvertTimeToUtc(date1));
TimeZoneInfo tz = TimeZoneInfo.FindSystemTimeZoneById("Pacific Standard Time");
Console.WriteLine(TimeZoneInfo.ConvertTimeToUtc(date1, tz));
}
}
// The example displays the following output on Windows XP systems:
// 3/21/2006 9:00:00 AM
// 3/21/2006 9:00:00 AM
// 3/21/2006 10:00:00 AM
open System
let date1 = DateTime(2006, 3, 21, 2, 0, 0)
printfn $"{date1.ToUniversalTime()}"
printfn $"{TimeZoneInfo.ConvertTimeToUtc date1}"
let tz = TimeZoneInfo.FindSystemTimeZoneById "Pacific Standard Time"
printfn $"{TimeZoneInfo.ConvertTimeToUtc(date1, tz)}"
// The example displays the following output on Windows XP systems:
// 3/21/2006 9:00:00 AM
// 3/21/2006 9:00:00 AM
// 3/21/2006 10:00:00 AM
Module Example
Public Sub Main()
Dim date1 As Date = #3/21/2006 2:00AM#
Console.WriteLine(date1.ToUniversalTime())
Console.WriteLine(TimeZoneInfo.ConvertTimeToUtc(date1))
Dim tz As TimeZoneInfo = TimeZoneInfo.FindSystemTimeZoneById("Pacific Standard Time")
Console.WriteLine(TimeZoneInfo.ConvertTimeToUtc(date1, tz))
End Sub
End Module
' The example displays the following output on Windows XP systems:
' 3/21/2006 9:00:00 AM
' 3/21/2006 9:00:00 AM
' 3/21/2006 10:00:00 AM