我想是能夠顯示的事件的發生,導致在另一時區的時間如下發生在另一個時區顯示時間戳
上午7點01分,11月22日(NZDT)
但是,DateTimeOffset僅存儲該時間點的數字偏移量,而不是生成該偏移量的時區。
是否有一個更合適的SQL/.Net類型,它允許存儲實際的原始時區信息或我需要將它存儲爲2個獨立的列/一個自定義的.net類型?
我想是能夠顯示的事件的發生,導致在另一時區的時間如下發生在另一個時區顯示時間戳
上午7點01分,11月22日(NZDT)
但是,DateTimeOffset僅存儲該時間點的數字偏移量,而不是生成該偏移量的時區。
是否有一個更合適的SQL/.Net類型,它允許存儲實際的原始時區信息或我需要將它存儲爲2個獨立的列/一個自定義的.net類型?
您確實需要存儲區域或其他可以幫助您重建所需內容的東西。有幫助的.NET類是the TimeZoneInfo class。如果你查看它,你會看到它有內置的序列化。它對系統上可用的時區有一定的依賴性,但通過允許自定義時區可以解決問題。我認爲它會幫助你。
正如@ g-stoynev所說,有必要存儲時區 - 對於任何給定的時區偏移量,可能會有多個時區。
TimeZoneInfo類的備用解決方案是Nodatime庫(http://nodatime.org/) - 它具有將實際時間和相關時區信息存儲在一起的類,並從來自IANA時區數據庫的全面時區列表中繪製時區信息(http://www.iana.org/time-zones)。
無論你是否使用該庫有對文檔中的可用日期的表示了很多有用的信息(http://nodatime.org/1.2.x/userguide/concepts.html)