Lire en anglais

Partager via


DateTimeOffset.ToOffset(TimeSpan) Méthode

Définition

Convertit la valeur de l'objet DateTimeOffset en cours en date et heure spécifiées par une valeur d'offset.

C#
public DateTimeOffset ToOffset(TimeSpan offset);

Paramètres

offset
TimeSpan

Offset de conversion de la valeur DateTimeOffset.

Retours

Objet égal à l'objet DateTimeOffset d'origine (c'est-à-dire dont les méthodes ToUniversalTime() retournent des instants identiques) mais dont la propriété Offset a la valeur offset.

Exceptions

L’objet résultant DateTimeOffset a une DateTime valeur antérieure à DateTimeOffset.MinValue.

-ou-

L’objet résultant DateTimeOffset a une DateTime valeur ultérieure à DateTimeOffset.MaxValue.

offset est inférieur à -14 heures.

- ou -

offset est supérieur à 14 heures.

Exemples

L’exemple suivant montre comment utiliser la ToOffset méthode pour convertir un DateTimeOffset objet en objet DateTimeOffset avec un décalage différent.

C#
using System;

public class DateTimeOffsetConversion
{
   private static DateTimeOffset sourceTime;

   public static void Main()
   {
      DateTimeOffset targetTime;
      sourceTime = new DateTimeOffset(2007, 9, 1, 9, 30, 0,
                                      new TimeSpan(-5, 0, 0));

      // Convert to same time (return sourceTime unchanged)
      targetTime = sourceTime.ToOffset(new TimeSpan(-5, 0, 0));
      ShowDateAndTimeInfo(targetTime);

      // Convert to UTC (0 offset)
      targetTime = sourceTime.ToOffset(TimeSpan.Zero);
      ShowDateAndTimeInfo(targetTime);

      // Convert to 8 hours behind UTC
      targetTime = sourceTime.ToOffset(new TimeSpan(-8, 0, 0));
      ShowDateAndTimeInfo(targetTime);

      // Convert to 3 hours ahead of UTC
      targetTime = sourceTime.ToOffset(new TimeSpan(3, 0, 0));
      ShowDateAndTimeInfo(targetTime);
   }

   private static void ShowDateAndTimeInfo(DateTimeOffset newTime)
   {
      Console.WriteLine("{0} converts to {1}", sourceTime, newTime);
      Console.WriteLine("{0} and {1} are equal: {2}",
                        sourceTime, newTime, sourceTime.Equals(newTime));
      Console.WriteLine("{0} and {1} are identical: {2}",
                        sourceTime, newTime,
                        sourceTime.EqualsExact(newTime));
      Console.WriteLine();
   }
}
//
// The example displays the following output:
//    9/1/2007 9:30:00 AM -05:00 converts to 9/1/2007 9:30:00 AM -05:00
//    9/1/2007 9:30:00 AM -05:00 and 9/1/2007 9:30:00 AM -05:00 are equal: True
//    9/1/2007 9:30:00 AM -05:00 and 9/1/2007 9:30:00 AM -05:00 are identical: True
//
//    9/1/2007 9:30:00 AM -05:00 converts to 9/1/2007 2:30:00 PM +00:00
//    9/1/2007 9:30:00 AM -05:00 and 9/1/2007 2:30:00 PM +00:00 are equal: True
//    9/1/2007 9:30:00 AM -05:00 and 9/1/2007 2:30:00 PM +00:00 are identical: False
//
//    9/1/2007 9:30:00 AM -05:00 converts to 9/1/2007 6:30:00 AM -08:00
//    9/1/2007 9:30:00 AM -05:00 and 9/1/2007 6:30:00 AM -08:00 are equal: True
//    9/1/2007 9:30:00 AM -05:00 and 9/1/2007 6:30:00 AM -08:00 are identical: False
//
//    9/1/2007 9:30:00 AM -05:00 converts to 9/1/2007 5:30:00 PM +03:00
//    9/1/2007 9:30:00 AM -05:00 and 9/1/2007 5:30:00 PM +03:00 are equal: True
//    9/1/2007 9:30:00 AM -05:00 and 9/1/2007 5:30:00 PM +03:00 are identical: False

Remarques

La ToOffset méthode est une alternative à l’appel de la TimeZoneInfo.ConvertTime(DateTimeOffset, TimeZoneInfo) méthode . Il peut être utile pour effectuer des conversions simples d’un fuseau horaire à un autre lorsque les décalages de fuseaux horaires par rapport au temps universel coordonné (UTC) sont connus. Toutefois, étant donné que ni l’objet d’origine DateTimeOffset ni le nouvel DateTimeOffset objet retourné par l’appel de méthode ne sont liés sans ambiguïté à un fuseau horaire particulier, la méthode n’applique aucune règle d’ajustement de fuseau horaire dans la conversion.

S’applique à

Produit Versions
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9, 10
.NET Framework 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 2.0, 2.1
UWP 10.0