我需要存储来自不同国家的多个用户详细信息。如何将日期存储在数据库中(采用UTC格式)以及如何根据其时区向用户显示日期。 我正在使用Java和mySQL。在Java中处理多个时区
1
A
回答
0
在MySQL中,在表中使用TIMESTAMP
数据类型。
对于每个用户,存储timezone
列,VARCHAR(64)
是该列的良好数据类型。当用户注册使用您的系统时,请询问时区值。矿是America/New_York
。您的可能或不可能是Asia/Kolkata
。对于此用户首选项设置的用户界面,WordPress.org软件就是一个很好的例子。
最后,当你建立从Java程序到你的DBMS在代表用户的连接,发出SQL命令
SET SESSION time_zone='(whatever tz string the user gave you)'
你处理任何用户数据之前。
这将导致您的表格的所有时间都转换为UTC,并且所有时间都会被转换为本地。它适用于NOW()
和CURDATE()
。再次,您必须使用TIMESTAMP
而不是DATETIME
或DATE
数据类型。
确保您的服务器操作系统和默认MySQL时区设置为UTC。如果在开始将信息加载到数据库之前不这样做,则几乎不可能修复。如果你使用一个供应商来运行MySQL,坚持他们得到这个权利,并且如果他们没有正确的解决方案,就会解雇供应商。
+0
感谢您的回复。我会尝试实施这些步骤。 –
相关问题
- 1. 在时区,处理多个时区
- 2. 在Django中处理时区
- 3. 在应用程序中处理多个时区
- 4. 在SDL中同时处理多个keypressess
- 5. 在Cocoa处理时区
- 6. Python中的时区处理
- 7. Java日期处理:在单个类中存储日期,时间和时区
- 8. 如何处理Java中的多个流?
- 9. 如果Excel中返回false,同时处理多个小区
- 10. JAVA中的多处理器
- 11. 在1个Eclipse工作区中处理多个SVN分支
- 12. 在PHP中处理时区和日期
- 13. 在仓库中处理时区?
- 14. 在PHP和MySQL中处理时区?
- 15. Java applet在处理mouseReleased事件时会抛出多个异常
- 16. mousePressed在处理中的某个区域
- 17. Java:如何在一个请求中处理多个Hibernate事务?
- 18. 在Java中处理网络超时
- 19. 在java中处理计时器
- 20. 处理在strptime时区在Python
- 21. 如何在android中处理java中的多个asyc请求?
- 22. Java ME处理多个屏幕
- 23. Django时区处理与Postgres
- 24. Rails Postgres时区处理
- 25. 时区处理对象
- 26. 处理时区和日期
- 27. 如何处理CMS中的时区?
- 28. 如何处理CFML中的时区?
- 29. 在Java中处理多个过滤器-MySql
- 30. 在Java中处理多个TCP连接(服务器端)
有什么解决方案使用Java 8? –
请看看http://stackoverflow.com/questions/12487125/java-how-do-you-convert-a-utc-timestamp-to-local-time – Anptk
要转换时区之间的时间[JodaTime](http ://stackoverflow.com/questions/19002978/in-joda-time-how-to-convert-time-zone-without-changing-time)是你最好的选择。 – Thiefster