DateTimeOffset de type DateTime de conversion - la Perte de Données

Quand je convertir un datetimeoffset en valeur datetime, est-il une possibilité de perte de données.
Partir de la documentation MSDN, la conversion de datetimeoffset de type datetime est mentionné comme suit:

DateTime propriété est le plus couramment utilisé pour effectuer DateTimeOffset
DateTime de conversion. Toutefois, elle renvoie une valeur de type DateTime dont le
Type de propriété n'est pas spécifiée. Cela signifie que toute l'information sur
la valeur DateTimeOffset de la relation à l'UTC est perdu par le
conversion lors de l'DateTime propriété est utilisée.

Pour indiquer qu'un converti valeur de type DateTime est l'heure UTC, vous pouvez récupérer la valeur de la DateTimeOffset.UtcDateTime de la propriété. Elle diffère de la date de la propriété de deux façons:

Elle renvoie une valeur de type DateTime dont le Type de la propriété est Utc.
Si le Décalage de la valeur de la propriété n'est pas égale à Temps.Zéro, il convertit l'heure UTC.

Je vois la méthode suivante pour convertir datetime décalage datetime:

static DateTime ConvertFromDateTimeOffset(DateTimeOffset dateTime)
{
   if (dateTime.Offset.Equals(TimeSpan.Zero))
      return dateTime.UtcDateTime;
   else if (dateTime.Offset.Equals(TimeZoneInfo.Local.GetUtcOffset(dateTime.DateTime)))
      return DateTime.SpecifyKind(dateTime.DateTime, DateTimeKind.Local);
   else
      return dateTime.DateTime;   
}

Maintenant, dans notre système, nous sommes en conversion datetimeoffset de type datetime dans la façon décrite ci-dessus. Plus tard, nous voulons convertir la date de retour à datetimeoffset.

Comme un exemple:

DateTime dt = ConvertFromDateTimeOffset(datetimeOffset);
DateTimeOffset dofsetnew = new DateTimeOffset(dt);

Ma question est de savoir si, en toutes circonstances datetimeOffset et dofsetnew être différent ? Si oui, alors la conversion serait la perte de données.

InformationsquelleAutor Venki | 2012-06-05