我使用PostgreSQL到一个数据库中存储一些日期。
在我的应用程序是根本的,它是完全知道的时区,我是进行一些基本的测试之间,客户端,服务器和数据库。
我是从一个浏览器的应用程序发送的日期我在GWT没有和阅读PostgreSQL的日期。
我的测试:
客户永远是在GMT时间,而我总是发送每种情况相同的日期。
13/04/2012 00:00:00 GMT + 00
在posgres我改变了每个测试的时区。 测试之间我删除表中的所有日期。
要更改posgres的时区,我这样做对PostgreSQL的{HOME} \ 9.1 \ DATA \ postgresql.conf中设置timezene到一个我想要的。
测试:客户:13/04/2012 00:00:00 GMT + 00
第一测试- posgres EST - 12/04/2012 19:00:00-05根据PostgreSQL文档 EST = GMT - 5
第二测试 - posgres GMT + 5 - 12/04/2012 19:00:00-05
第三测试 - posgres GMT - 5 - 05 13/04/2012:00:00 + 05
现在我的问题上升:根据该文档,EST = GMT - 5。那么,为什么我读它周围的其他方法? 我失去了一些东西在这里?
我的测试编辑技术方面:
在客户端我送这样的:2012年04月13日00:00:00 GMT + 00。
在服务器上,我使用JDBC的数据库写:
转换java.utils.date到的java.sql.Timestamp
java.sql.Timestamp sqlTimeStamp = new java.sql.Timestamp(date.getTime());
(日期是java.utils.Date是来自于客户端)
设置预处理语句
PreparedStatement ps = con.prepareStatement("INSERT INTO teste.dates (dates_tz, dates_ntz) VALUES (?, ?);"
ps.setTimestamp(1,sqlTimeStamp); ...
根据记录,这只是我想明白了,因为总体而言,它很适合我的目的..