我正在java上开发一个客户端 - 服务器应用程序。服务器通过Web服务提供一些操作。应用程序必须根据用户的自定义日期和时间显示一些内容;从Web服务检索的信息。不同的用户可能处于不同的时区。
我一直在考虑如何在服务器上存储用户的自定义时区,并为用户提供正确的内容,例如,在调用getTodayEvents操作时。
在java中采用这种方法的最佳做法是什么?
答案 0 :(得分:2)
是,您可以将时区信息存储到用户的详细信息表中。根据您可以从您的Web服务提供服务。我认为这是最好的方法。
答案 1 :(得分:0)
有两种方法可以做到这一点:
1)让用户在他们的帐户设置中选择一个时区,并将其与用户详细信息一起存储。
这种方法的问题在于,用户从不同的时区登录,处理夏令时可能很复杂,而且你必须实现一个用户友好的机制来选择时区。
2)将以下内容或类似内容放入登录页面,并让提交操作将tzo
的值作为(隐藏)表单参数发送到服务器。
<script type="text/javascript" language="javascript">
<!--
var tzo=(new Date().gettimezoneOffset()/60)*(-1);
// -->
</script>
这巧妙地避免了第一种方法的问题。唯一的问题是,如果用户禁用了Javascript,它将无效。
答案 2 :(得分:0)
一条忠告:当你的代码具有重要的与日期相关的逻辑时(如果它考虑了时区,它有),让你自己一个痛苦的世界,并使用Joda time。与Java的日期和日历的邪恶联合不同,Joda Time的API通常会让你以正确的方式做事。