【发布时间】:2013-03-04 16:03:47
【问题描述】:
我正在开发一个 Web 应用程序,用于跟踪我的组织的日程安排。有超过 100 个不同的官方位置可以使用它。当用户登录时,用户的物理位置会保存在会话中。
应用程序上有一个用户可以点击的按钮。我有一个要求,当用户单击按钮时,应用程序必须记录它在用户物理位置的时间。
我知道将应用程序设计为在内部使用 UTC 可能是有意义的,但该程序多年来一直使用本地时间。但是,到目前为止,我看不到有人做过任何需要使用当前时间(日期除外)的事情。
我可以在我的数据库中看到每个位置都有一个应该对应于时区的“区域设置 ID”,但我知道在如何考虑“夏令时”和“夏令时”方面存在差异世界各地。
考虑所有这些因素的有效方法是什么,以便当用户在 100 个位置中的一个登录时,当他单击按钮时,我可以知道用户的实际位置是什么时候?
【问题讨论】:
-
你说你知道用户的位置。你对它了解多少?经纬度从手机坐标?在您的应用程序中建立的方式中的一些物理数据?要进行时区转换,您需要来自 .Net 中的
TimeZoneInfo类或像 NodaTime 这样的 TZDB 实现的一些时区信息。唯一的问题是如何确定用户的时区。 -
您可以为时区保存单独的表...因为每个用户都有时区...您可以轻松找到他们的时间...使用时区偏移量...只需添加偏移量到你的服务器时间..
-
@Daniel - 如果您可靠地知道位置,您可以预设或确定时区。然后你就开始做生意了。