TimeZoneInfo.GetUtcOffset Méthode
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Calcule l'offset ou le décalage entre l'heure de ce fuseau horaire et le temps universel coordonné (UTC, Universal Time Coordinated) pour une date et une heure spécifiques.
Surcharges
GetUtcOffset(DateTime) |
Calcule l'offset ou le décalage entre l'heure de ce fuseau horaire et le temps universel coordonné (UTC, Universal Time Coordinated) pour une date et une heure spécifiques. |
GetUtcOffset(DateTimeOffset) |
Calcule l'offset ou le décalage entre l'heure de ce fuseau horaire et le temps universel coordonné (UTC, Universal Time Coordinated) pour une date et une heure spécifiques. |
GetUtcOffset(DateTime)
- Source:
- TimeZoneInfo.cs
- Source:
- TimeZoneInfo.cs
- Source:
- TimeZoneInfo.cs
Calcule l'offset ou le décalage entre l'heure de ce fuseau horaire et le temps universel coordonné (UTC, Universal Time Coordinated) pour une date et une heure spécifiques.
public:
TimeSpan GetUtcOffset(DateTime dateTime);
public TimeSpan GetUtcOffset (DateTime dateTime);
member this.GetUtcOffset : DateTime -> TimeSpan
Public Function GetUtcOffset (dateTime As DateTime) As TimeSpan
Paramètres
- dateTime
- DateTime
Date et heure pour lesquelles déterminer l'offset.
Retours
Objet qui indique la différence d'heure entre les deux fuseaux horaires.
Exemples
L’exemple suivant illustre l’utilisation de la GetUtcOffset(DateTime) méthode avec différents fuseaux horaires et avec des valeurs de date qui ont des valeurs de propriété différentes Kind .
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.
Remarques
L’intervalle de temps retourné inclut les différences dues à l’application de règles d’ajustement au fuseau horaire actuel. Elle diffère de la BaseUtcOffset propriété , qui retourne la différence entre le temps universel coordonné (UTC) et l’heure standard du fuseau horaire et, par conséquent, ne prend pas en compte les règles d’ajustement.
Si la dateTime
propriété du Kind paramètre ne correspond pas à l’objet de fuseau horaire, cette méthode effectue la conversion nécessaire avant de retourner un résultat. Par exemple, cela peut se produire si la Kind propriété est DateTimeKind.Local mais que l’objet de fuseau horaire n’est pas le fuseau horaire local. Si dateTime
est ambigu ou si l’heure convertie est ambiguë, cette méthode interprète l’heure ambiguë comme une heure standard. Si dateTime
n’est pas valide, cette méthode renvoie un TimeSpan objet qui reflète la différence entre l’heure UTC et l’heure standard du fuseau horaire.
Le TimeZoneInfo.GetUtcOffset(DateTime) fonctionnement de la méthode est similaire à la GetUtcOffset méthode de la TimeZone classe .
Voir aussi
S’applique à
GetUtcOffset(DateTimeOffset)
- Source:
- TimeZoneInfo.cs
- Source:
- TimeZoneInfo.cs
- Source:
- TimeZoneInfo.cs
Calcule l'offset ou le décalage entre l'heure de ce fuseau horaire et le temps universel coordonné (UTC, Universal Time Coordinated) pour une date et une heure spécifiques.
public:
TimeSpan GetUtcOffset(DateTimeOffset dateTimeOffset);
public TimeSpan GetUtcOffset (DateTimeOffset dateTimeOffset);
member this.GetUtcOffset : DateTimeOffset -> TimeSpan
Public Function GetUtcOffset (dateTimeOffset As DateTimeOffset) As TimeSpan
Paramètres
- dateTimeOffset
- DateTimeOffset
Date et heure pour lesquelles déterminer l'offset.
Retours
Objet qui indique la différence d'heure entre le temps universel coordonné et le fuseau horaire actuel.
Remarques
L’intervalle de temps retourné inclut les différences dues à l’application de règles d’ajustement au fuseau horaire actuel. Elle diffère de la BaseUtcOffset propriété , qui retourne la différence entre le temps universel coordonné (UTC) et l’heure standard du fuseau horaire et, par conséquent, ne prend pas en compte les règles d’ajustement.