2011-12-03 22 views
0

我有一個Web服務,可以保存來自世界各地用戶的一些事件。用戶稍後可以登錄到報告系統並查看其事件。我需要在當地時間顯示事件時間戳。在WCF服務中捕獲客戶端Datetimeoffset

我可以使用 db字段後面的WCF service。但是我對如何在Web服務上轉換它感到困惑。當客戶端調用我的Web服務事件方法時,他們需要發送datetime參數,因爲實際事件的時間可能與時間服務接收時間不同。

如果我嘗試在服務器上將其轉換爲DateTimeOffset dtOffset = eventTime;,它將根據服務器的時間對其進行轉換。

我該如何正確地做到這一點?

回答

2

您應該在數據庫中存儲UTC格式的時間以及您想要顯示時間的位置,只需使用DateTime對象的ToLocalTime()將UTC時間轉換爲客戶端計算機上的時區即可。

+0

它不會顯示服務器的本地時間?服務器可能在一個位置,客戶將遍佈世界各地。 –

+0

您可以在客戶端計算JavaScript中的日期時間偏移量,將其作爲隱藏字段發送到服務器,然後對utc時間和日期時間偏移量進行差異化。以下鏈接可以更詳細地解釋它http://www.tellingmachine.com/post/Rendering-ASPNET-UTC-time-as-local-time-of-the-browsers-time-zone.aspx –