2014-04-21 25 views
0

我有一個asp.net-mvc應用程序,它可以安排與世界各地的人約會。這些約會全部以UTC格式保存在數據庫中。在註冊期間,用戶選擇他們居住的時區。因此,所有約會都顯示在他們的時區中。在不同時區安排約會

這就是說,這裏是情況。如果居住在時區W. Europe Standard Time的用戶想要在下午1點到下午5點之間與5月1日(2014年5月1日)時區Eastern Standard Time中的某人約會。

時間將轉換爲UTC格式,並與數據庫中的現有約會(無論是否可能)(例如,用戶沒有其他約會)進行比較。如果可能的話,這個約會會被保存到兩個用戶的數據庫中。

現在來了有趣的部分。生活在W. Europe Standard Time中的用戶將在他的日程安排中看到1點 - 5點(在下午),而居住在Eastern Standard Time中的用戶將看到早上7點--11點(7小時時區之間的差異)。

發生這種情況是因爲約會在檢查視圖中的時間表時,都從UTC轉換爲用戶的時區。

所以問題是,我怎樣才能確保兩個用戶獲得相同的時間進行約會,他們之間的相互作用?

+1

我很困惑,沒有看到不同的小時,它實際上對應於你想要的相同時間? – svick

+0

您可能*不想*按UTC計劃約會。參見[這裏](http://stackoverflow.com/a/22080372/634824)以及從那裏連接的響應。 –

+0

@MattJohnson,我發現你的帖子在這個鏈接:http://stackoverflow.com/questions/19166995/java-calendar-date-and-time-management-for-a-multi-timezone-application/19170823#19170823很有用,特別是你的第二點。你有什麼機會可以爲我描述我的情況?我確實有將來安排的活動,並且時間以UTC格式保存。但在視圖中,它們顯示在用戶的本地時間(我的時區保存在數據庫中)。從你的小引用:「相反,你應該存儲兩個值」(從你的帖子中獲取該鏈接)。 – Quoter

回答

0

它只是不可能的,他們住在不同的時區,當A在17:00 B可以在21:00,所以如果它必須在不同的時區同時發生,約會有不同的時間是正常的。

1

如果您希望他們都看到顯示的同一時間,那麼以UTC時間顯示他們兩個的時間表,他們會看到同樣的情況。

如果您希望他們看到他們會理解的時間,然後在他們自己的時區向他們顯示約會時間,並接受它在不同時區的用戶會以不同方式顯示。

0

如果您正在討論的會議不是虛擬的(如Skype電話),而是實體會議,那麼它也具有物理位置。這意味着該位置或至少它的時區應該是約會的參數之一。

然後,您可以同時在會議地點的時區顯示兩個參與者,並忽略其偏好中的時區。但爲了避免混淆,我也會明確地顯示會議的時區。

相關問題