TimeZoneInfo.GetUtcOffset Methode
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
Berekent de verschuiving of het verschil tussen de tijd in deze tijdzone en Coordinated Universal Time (UTC) voor een bepaalde datum en tijd.
Overloads
| Name | Description |
|---|---|
| GetUtcOffset(DateTime) |
Berekent de verschuiving of het verschil tussen de tijd in deze tijdzone en Coordinated Universal Time (UTC) voor een bepaalde datum en tijd. |
| GetUtcOffset(DateTimeOffset) |
Berekent de verschuiving of het verschil tussen de tijd in deze tijdzone en Coordinated Universal Time (UTC) voor een bepaalde datum en tijd. |
GetUtcOffset(DateTime)
- Bron:
- TimeZoneInfo.cs
- Bron:
- TimeZoneInfo.cs
- Bron:
- TimeZoneInfo.cs
- Bron:
- TimeZoneInfo.cs
- Bron:
- TimeZoneInfo.cs
Berekent de verschuiving of het verschil tussen de tijd in deze tijdzone en Coordinated Universal Time (UTC) voor een bepaalde datum en tijd.
public:
TimeSpan GetUtcOffset(DateTime dateTime);
public TimeSpan GetUtcOffset(DateTime dateTime);
member this.GetUtcOffset : DateTime -> TimeSpan
Public Function GetUtcOffset (dateTime As DateTime) As TimeSpan
Parameters
- dateTime
- DateTime
De datum en tijd waarop de verschuiving moet worden bepaald.
Retouren
Een object dat het tijdsverschil tussen de twee tijdzones aangeeft.
Voorbeelden
In het volgende voorbeeld ziet u het gebruik van de GetUtcOffset(DateTime) methode met verschillende tijdzones en met datumwaarden met verschillende Kind eigenschapswaarden.
using System;
[assembly:CLSCompliant(true)]
namespace TimeZoneInfoCode
{
public class TimeOffsets
{
public static void Main()
{
TimeOffsets timeoff = new TimeOffsets();
TimeZoneInfo cst = TimeZoneInfo.FindSystemTimeZoneById("Central Standard Time");
timeoff.ShowOffset(new DateTime(2006, 6, 12, 11, 0, 0), TimeZoneInfo.Local);
timeoff.ShowOffset(new DateTime(2007, 11, 4, 1, 0, 0), TimeZoneInfo.Local);
timeoff.ShowOffset(new DateTime(2006, 12, 10, 15, 0, 0), TimeZoneInfo.Local);
timeoff.ShowOffset(new DateTime(2007, 3, 11, 2, 30, 0), TimeZoneInfo.Local);
timeoff.ShowOffset(DateTime.UtcNow, TimeZoneInfo.Local);
timeoff.ShowOffset(new DateTime(2006, 6, 12, 11, 0, 0), TimeZoneInfo.Utc);
timeoff.ShowOffset(new DateTime(2007, 11, 4, 1, 0, 0), TimeZoneInfo.Utc);
timeoff.ShowOffset(new DateTime(2006, 12, 10, 3, 0, 0), TimeZoneInfo.Utc);
timeoff.ShowOffset(new DateTime(2007, 3, 11, 2, 30, 0), TimeZoneInfo.Utc);
timeoff.ShowOffset(DateTime.Now, TimeZoneInfo.Utc);
timeoff.ShowOffset(new DateTime(2006, 6, 12, 11, 0, 0), cst);
timeoff.ShowOffset(new DateTime(2007, 11, 4, 1, 0, 0), cst);
timeoff.ShowOffset(new DateTime(2006, 12, 10, 15, 0, 0), cst);
timeoff.ShowOffset(new DateTime(2007, 3, 11, 2, 30, 0, 0), cst);
timeoff.ShowOffset(new DateTime(2007, 11, 14, 00, 00, 00, DateTimeKind.Local), cst);
}
private void ShowOffset(DateTime time, TimeZoneInfo timeZone)
{
DateTime convertedTime = time;
TimeSpan offset;
if (time.Kind == DateTimeKind.Local && ! timeZone.Equals(TimeZoneInfo.Local))
convertedTime = TimeZoneInfo.ConvertTime(time, TimeZoneInfo.Local, timeZone);
else if (time.Kind == DateTimeKind.Utc && ! timeZone.Equals(TimeZoneInfo.Utc))
convertedTime = TimeZoneInfo.ConvertTime(time, TimeZoneInfo.Utc, timeZone);
offset = timeZone.GetUtcOffset(time);
if (time == convertedTime)
{
Console.WriteLine("{0} {1} ", time,
timeZone.IsDaylightSavingTime(time) ? timeZone.DaylightName : timeZone.StandardName);
Console.WriteLine(" It differs from UTC by {0} hours, {1} minutes.",
offset.Hours,
offset.Minutes);
}
else
{
Console.WriteLine("{0} {1} ", time,
time.Kind == DateTimeKind.Utc ? "UTC" : TimeZoneInfo.Local.Id);
Console.WriteLine(" converts to {0} {1}.",
convertedTime,
timeZone.Id);
Console.WriteLine(" It differs from UTC by {0} hours, {1} minutes.",
offset.Hours, offset.Minutes);
}
Console.WriteLine();
}
}
}
// The example produces the following output:
//
// 6/12/2006 11:00:00 AM Pacific Daylight Time
// It differs from UTC by -7 hours, 0 minutes.
//
// 11/4/2007 1:00:00 AM Pacific Standard Time
// It differs from UTC by -8 hours, 0 minutes.
//
// 12/10/2006 3:00:00 PM Pacific Standard Time
// It differs from UTC by -8 hours, 0 minutes.
//
// 3/11/2007 2:30:00 AM Pacific Standard Time
// It differs from UTC by -8 hours, 0 minutes.
//
// 2/2/2007 8:35:46 PM UTC
// converts to 2/2/2007 12:35:46 PM Pacific Standard Time.
// It differs from UTC by -8 hours, 0 minutes.
//
// 6/12/2006 11:00:00 AM UTC
// It differs from UTC by 0 hours, 0 minutes.
//
// 11/4/2007 1:00:00 AM UTC
// It differs from UTC by 0 hours, 0 minutes.
//
// 12/10/2006 3:00:00 AM UTC
// It differs from UTC by 0 hours, 0 minutes.
//
// 3/11/2007 2:30:00 AM UTC
// It differs from UTC by 0 hours, 0 minutes.
//
// 2/2/2007 12:35:46 PM Pacific Standard Time
// converts to 2/2/2007 8:35:46 PM UTC.
// It differs from UTC by 0 hours, 0 minutes.
//
// 6/12/2006 11:00:00 AM Central Daylight Time
// It differs from UTC by -5 hours, 0 minutes.
//
// 11/4/2007 1:00:00 AM Central Standard Time
// It differs from UTC by -6 hours, 0 minutes.
//
// 12/10/2006 3:00:00 PM Central Standard Time
// It differs from UTC by -6 hours, 0 minutes.
//
// 3/11/2007 2:30:00 AM Central Standard Time
// It differs from UTC by -6 hours, 0 minutes.
//
// 11/14/2007 12:00:00 AM Pacific Standard Time
// converts to 11/14/2007 2:00:00 AM Central Standard Time.
// It differs from UTC by -6 hours, 0 minutes.
open System
let showOffset (time: DateTime) (timeZone: TimeZoneInfo) =
let convertedTime =
match time.Kind with
| DateTimeKind.Local when not (timeZone.Equals TimeZoneInfo.Local) ->
TimeZoneInfo.ConvertTime(time, TimeZoneInfo.Local, timeZone)
| DateTimeKind.Utc when not (timeZone.Equals TimeZoneInfo.Utc) ->
TimeZoneInfo.ConvertTime(time, TimeZoneInfo.Utc, timeZone)
| _ -> time
let offset = timeZone.GetUtcOffset time
if time = convertedTime then
printfn $"{time} {if timeZone.IsDaylightSavingTime time then timeZone.DaylightName else timeZone.StandardName} "
printfn $" It differs from UTC by {offset.Hours} hours, {offset.Minutes} minutes."
else
printfn $"""{time} {if time.Kind = DateTimeKind.Utc then "UTC" else TimeZoneInfo.Local.Id} """
printfn $" converts to {convertedTime} {timeZone.Id}."
printfn $" It differs from UTC by {offset.Hours} hours, {offset.Minutes} minutes."
printfn ""
let cst = TimeZoneInfo.FindSystemTimeZoneById "Central Standard Time"
showOffset (DateTime(2006, 6, 12, 11, 0, 0)) TimeZoneInfo.Local
showOffset (DateTime(2007, 11, 4, 1, 0, 0)) TimeZoneInfo.Local
showOffset (DateTime(2006, 12, 10, 15, 0, 0)) TimeZoneInfo.Local
showOffset (DateTime(2007, 3, 11, 2, 30, 0)) TimeZoneInfo.Local
showOffset DateTime.UtcNow TimeZoneInfo.Local
showOffset (DateTime(2006, 6, 12, 11, 0, 0)) TimeZoneInfo.Utc
showOffset (DateTime(2007, 11, 4, 1, 0, 0)) TimeZoneInfo.Utc
showOffset (DateTime(2006, 12, 10, 3, 0, 0)) TimeZoneInfo.Utc
showOffset (DateTime(2007, 3, 11, 2, 30, 0)) TimeZoneInfo.Utc
showOffset DateTime.Now TimeZoneInfo.Utc
showOffset (DateTime(2006, 6, 12, 11, 0, 0)) cst
showOffset (DateTime(2007, 11, 4, 1, 0, 0)) cst
showOffset (DateTime(2006, 12, 10, 15, 0, 0)) cst
showOffset (DateTime(2007, 3, 11, 2, 30, 0, 0)) cst
showOffset (DateTime(2007, 11, 14, 00, 00, 00, DateTimeKind.Local)) cst
// The example produces the following output:
//
// 6/12/2006 11:00:00 AM Pacific Daylight Time
// It differs from UTC by -7 hours, 0 minutes.
//
// 11/4/2007 1:00:00 AM Pacific Standard Time
// It differs from UTC by -8 hours, 0 minutes.
//
// 12/10/2006 3:00:00 PM Pacific Standard Time
// It differs from UTC by -8 hours, 0 minutes.
//
// 3/11/2007 2:30:00 AM Pacific Standard Time
// It differs from UTC by -8 hours, 0 minutes.
//
// 2/2/2007 8:35:46 PM UTC
// converts to 2/2/2007 12:35:46 PM Pacific Standard Time.
// It differs from UTC by -8 hours, 0 minutes.
//
// 6/12/2006 11:00:00 AM UTC
// It differs from UTC by 0 hours, 0 minutes.
//
// 11/4/2007 1:00:00 AM UTC
// It differs from UTC by 0 hours, 0 minutes.
//
// 12/10/2006 3:00:00 AM UTC
// It differs from UTC by 0 hours, 0 minutes.
//
// 3/11/2007 2:30:00 AM UTC
// It differs from UTC by 0 hours, 0 minutes.
//
// 2/2/2007 12:35:46 PM Pacific Standard Time
// converts to 2/2/2007 8:35:46 PM UTC.
// It differs from UTC by 0 hours, 0 minutes.
//
// 6/12/2006 11:00:00 AM Central Daylight Time
// It differs from UTC by -5 hours, 0 minutes.
//
// 11/4/2007 1:00:00 AM Central Standard Time
// It differs from UTC by -6 hours, 0 minutes.
//
// 12/10/2006 3:00:00 PM Central Standard Time
// It differs from UTC by -6 hours, 0 minutes.
//
// 3/11/2007 2:30:00 AM Central Standard Time
// It differs from UTC by -6 hours, 0 minutes.
//
// 11/14/2007 12:00:00 AM Pacific Standard Time
// converts to 11/14/2007 2:00:00 AM Central Standard Time.
// It differs from UTC by -6 hours, 0 minutes.
Option Strict On
<Assembly: CLSCompliant(True)>
Module TimeOffsets
Public Sub Main()
Dim cst As TimeZoneInfo = TimeZoneInfo.FindSystemTimeZoneById("Central Standard Time")
ShowOffset(#6/12/2006 11:00AM#, TimeZoneInfo.Local)
ShowOffset(#11/4/2007 1:00AM#, TimeZoneInfo.Local)
ShowOffset(#12/10/2006 3:00PM#, TimeZoneInfo.Local)
ShowOffset(#3/11/2007 2:30:00AM#, TimeZoneInfo.Local)
ShowOffset(Date.UtcNow, TimeZoneInfo.Local)
ShowOffset(#6/12/2006 11:00AM#, TimeZoneInfo.Utc)
ShowOffset(#11/4/2007 1:00AM#, TimeZoneInfo.Utc)
ShowOffset(#12/10/2006 3:00PM#, TimeZoneInfo.Utc)
ShowOffset(#3/11/2007 2:30:00AM#, TimeZoneInfo.Utc)
ShowOffset(Date.Now, TimeZoneInfo.Utc)
ShowOffset(#6/12/2006 11:00AM#, cst)
ShowOffset(#11/4/2007 1:00AM#, cst)
ShowOffset(#12/10/2006 3:00PM#, cst)
ShowOffset(#3/11/2007 2:30:00AM#, cst)
ShowOffset(New Date(2007, 11, 14, 00, 00, 00, DateTimeKind.Local), cst)
End Sub
Private Sub ShowOffset(time As Date, timeZone As TimeZoneInfo)
Dim convertedTime As Date = time
Dim offset As TimeSpan
If time.Kind = DateTimeKind.Local And Not timeZone.Equals(TimeZoneInfo.Local) Then
convertedTime = TimeZoneInfo.ConvertTime(time, TimeZoneInfo.Local, timeZone)
ElseIf time.Kind = DateTimeKind.Utc And Not timeZone.Equals(TimeZoneInfo.Utc) Then
convertedTime = TimeZoneInfo.ConvertTime(time, TimeZoneInfo.Utc, timeZone)
End If
offset = timeZone.GetUtcOffset(time)
If time = convertedTime Then
Console.WriteLine("{0} {1} ", time, _
IIf(timeZone.IsDaylightSavingTime(time), timeZone.DaylightName, timeZone.StandardName))
Console.WriteLine(" It differs from UTC by {0} hours, {1} minutes.", _
offset.Hours, _
offset.Minutes)
Else
Console.WriteLine("{0} {1} ", time, _
IIf(time.Kind = DateTimeKind.Utc, "UTC", TimeZoneInfo.Local.Id))
Console.WriteLine(" converts to {0} {1}.", _
convertedTime, _
timeZone.Id)
Console.WriteLine(" It differs from UTC by {0} hours, {1} minutes.", _
offset.Hours, offset.Minutes)
End If
Console.WriteLine()
End Sub
End Module
'
' The example produces the following output:
'
' 6/12/2006 11:00:00 AM Pacific Daylight Time
' It differs from UTC by -7 hours, 0 minutes.
'
' 11/4/2007 1:00:00 AM Pacific Standard Time
' It differs from UTC by -8 hours, 0 minutes.
'
' 12/10/2006 3:00:00 PM Pacific Standard Time
' It differs from UTC by -8 hours, 0 minutes.
'
' 3/11/2007 2:30:00 AM Pacific Standard Time
' It differs from UTC by -8 hours, 0 minutes.
'
' 2/2/2007 8:35:46 PM UTC
' converts to 2/2/2007 12:35:46 PM Pacific Standard Time.
' It differs from UTC by -8 hours, 0 minutes.
'
' 6/12/2006 11:00:00 AM UTC
' It differs from UTC by 0 hours, 0 minutes.
'
' 11/4/2007 1:00:00 AM UTC
' It differs from UTC by 0 hours, 0 minutes.
'
' 12/10/2006 3:00:00 AM UTC
' It differs from UTC by 0 hours, 0 minutes.
'
' 3/11/2007 2:30:00 AM UTC
' It differs from UTC by 0 hours, 0 minutes.
'
' 2/2/2007 12:35:46 PM Pacific Standard Time
' converts to 2/2/2007 8:35:46 PM UTC.
' It differs from UTC by 0 hours, 0 minutes.
'
' 6/12/2006 11:00:00 AM Central Daylight Time
' It differs from UTC by -5 hours, 0 minutes.
'
' 11/4/2007 1:00:00 AM Central Standard Time
' It differs from UTC by -6 hours, 0 minutes.
'
' 12/10/2006 3:00:00 PM Central Standard Time
' It differs from UTC by -6 hours, 0 minutes.
'
' 3/11/2007 2:30:00 AM Central Standard Time
' It differs from UTC by -6 hours, 0 minutes.
'
' 11/14/2007 12:00:00 AM Pacific Standard Time
' converts to 11/14/2007 2:00:00 AM Central Standard Time.
' It differs from UTC by -6 hours, 0 minutes.
Opmerkingen
De geretourneerde tijdsperiode omvat eventuele verschillen als gevolg van de toepassing van aanpassingsregels voor de huidige tijdzone. Het verschilt van de BaseUtcOffset eigenschap, die het verschil tussen Coordinated Universal Time (UTC) en de standaardtijd van de tijdzone retourneert en daarom geen rekening houdt met aanpassingsregels.
Als de eigenschap van dateTime de Kind parameter niet overeenkomt met het tijdzoneobject, voert deze methode de benodigde conversie uit voordat een resultaat wordt geretourneerd. Dit kan bijvoorbeeld gebeuren als de Kind eigenschap is DateTimeKind.Local , maar het tijdzoneobject niet de lokale tijdzone is. Als dateTime dit dubbelzinnig is of als de geconverteerde tijd dubbelzinnig is, interpreteert deze methode de dubbelzinnige tijd als een standaardtijd. Als dateTime dit ongeldig is, retourneert deze methode een TimeSpan object dat het verschil weergeeft tussen UTC en de standaardtijd van de tijdzone.
De TimeZoneInfo.GetUtcOffset(DateTime) methode is vergelijkbaar met de GetUtcOffset methode van de TimeZone klasse.
Zie ook
Van toepassing op
GetUtcOffset(DateTimeOffset)
- Bron:
- TimeZoneInfo.cs
- Bron:
- TimeZoneInfo.cs
- Bron:
- TimeZoneInfo.cs
- Bron:
- TimeZoneInfo.cs
- Bron:
- TimeZoneInfo.cs
Berekent de verschuiving of het verschil tussen de tijd in deze tijdzone en Coordinated Universal Time (UTC) voor een bepaalde datum en tijd.
public:
TimeSpan GetUtcOffset(DateTimeOffset dateTimeOffset);
public TimeSpan GetUtcOffset(DateTimeOffset dateTimeOffset);
member this.GetUtcOffset : DateTimeOffset -> TimeSpan
Public Function GetUtcOffset (dateTimeOffset As DateTimeOffset) As TimeSpan
Parameters
- dateTimeOffset
- DateTimeOffset
De datum en tijd waarop de verschuiving moet worden bepaald.
Retouren
Een object dat het tijdsverschil aangeeft tussen Coordinated Universal Time (UTC) en de huidige tijdzone.
Opmerkingen
De geretourneerde tijdsperiode omvat eventuele verschillen als gevolg van de toepassing van aanpassingsregels voor de huidige tijdzone. Het verschilt van de BaseUtcOffset eigenschap, die het verschil tussen Coordinated Universal Time (UTC) en de standaardtijd van de tijdzone retourneert en daarom geen rekening houdt met aanpassingsregels.