當我將datetimeoffset值轉換爲日期時間值時,是否有任何數據丟失的可能性。 從MSDN文檔,從DATETIMEOFFSET到日期時間轉換被提及如下:DateTimeOffset到DateTime轉換 - 數據丟失
日期時間屬性是最常用的執行的DateTimeOffset 爲DateTime轉換。但是,它返回一個DateTime值,其 Kind屬性是Unspecified。這意味着在使用DateTime屬性時,有關 DateTimeOffset值與UTC的關係的任何信息將由 轉換丟失。
要指示轉換後的DateTime值是UTC時間,您可以檢索DateTimeOffset.UtcDateTime屬性的值。它與DateTime屬性有兩種區別:
它返回一個DateTime值,其Kind屬性爲Utc。 如果偏移屬性值不等於TimeSpan.Zero,它會將時間轉換爲UTC。
我看到下面的方法來轉換日期時間偏移日期時間:
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;
}
現在在我們的系統,我們在上面的方式轉換DATETIMEOFFSET爲datetime。稍後我們要將日期時間轉換回datetimeoffset。
舉個例子:
DateTime dt = ConvertFromDateTimeOffset(datetimeOffset);
DateTimeOffset dofsetnew = new DateTimeOffset(dt);
我的問題是任何情況下DATETIMEOFFSET以及是否下dofsetnew有所不同呢?如果是這樣,那麼轉換將是損失數據。