Exporter (0) Imprimer
Développer tout

DateTimeOffset.ToOffset, méthode

Mise à jour : novembre 2007

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

Espace de noms :  System
Assembly :  mscorlib (dans mscorlib.dll)

public DateTimeOffset ToOffset(
	TimeSpan offset
)
public DateTimeOffset ToOffset(
	TimeSpan offset
)
public function ToOffset(
	offset : TimeSpan
) : DateTimeOffset

Paramètres

offset
Type : System.TimeSpan
Offset de conversion de la valeur DateTimeOffset.

Valeur de retour

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

ExceptionCondition
ArgumentException

La valeur DateTime de l'objet DateTimeOffset obtenu est antérieure à MinValue.

– ou –

La valeur DateTime de l'objet DateTimeOffset obtenu est ultérieure à MaxValue.

ArgumentOutOfRangeException

offset est inférieur à -14 heures.

– ou –

offset est supérieur à 14 heures.

La méthode ToOffset est une alternative à l'appel de la méthode TimeZoneInfo.ConvertTime(DateTimeOffset, TimeZoneInfo). Elle peut être utile pour exécuter des conversions simples d'un fuseau horaire à un autre lorsque les offsets des fuseaux horaires à partir du temps universel sont connus. Cependant, étant donné que ni l'objet DateTimeOffset d'origine ni le nouvel objet DateTimeOffset retourné par l'appel de la méthode ne sont clairement associés à un fuseau horaire particulier, la méthode n'applique aucune règle d'ajustement du fuseau horaire lors de la conversion.

L'exemple suivant illustre comment utiliser la méthode ToOffset pour convertir un objet DateTimeOffset en objet DateTimeOffset avec un offset différent.

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


Le .NET Framework et le .NET Compact Framework ne prennent pas en charge toutes les versions de chaque plateforme. Pour obtenir la liste des versions prises en charge, consultez Configuration requise du .NET Framework.

.NET Framework

Pris en charge dans : 3.5 SP1, 3.0 SP1, 2.0 SP1

Ajouts de la communauté

AJOUTER
Afficher:
© 2014 Microsoft