Hi guys,

I have MonetDB database with table containing user table:
CREATE TABLE user
(
    birth_date TIMESTAMP NOT NULL
);

birth_date is saved in GMT without DST. (This is the default behavior of MonetDB).
So I should change the TimeZone in my application. Here is my code:


Class.forName("nl.cwi.monetdb.jdbc.MonetDriver");
Connection con = DriverManager.getConnection("jdbc:monetdb://localhost/online", "monetdb", "monetdb");      
Statement st = con.createStatement();
ResultSet rs;

Calendar c = Calendar.getInstance(TimeZone.getTimeZone("UTC"));
rs
= st.executeQuery("SELECT * FROM user");
while (rs.next()) {
    c
.setTime(rs.getTimestamp("birth_date"));
   c.setTimeZone(TimeZone.getTimeZone("Asia/Tehran"));
   
System.out.println(c.get(Calendar.YEAR) + "-" + c.get(Calendar.MONTH) + "-" + c.get(Calendar.DAY_OF_MONTH) + " " + c.get(Calendar.HOUR_OF_DAY) + ":" + c.get(Calendar.MINUTE) + ":" + c.get(Calendar.SECOND));
}

But there is no difference between timestamps in database
and timestamps after converting time zone in application.
Could anyone help?
Is this the wrong way to convert TimeZone?
I'm using MonetDB version 11.9.5-20120516 on Debian 6 with openjdk 6.
Here is the monetdbd getall /home/dbfarm:

dbfarm           /home/dbfarm/
status           monetdbd
[4187] 1.6 (Apr2012-SP1) is serving this dbfarm
mserver          
/usr/bin/mserver5
logfile          
/home/dbfarm//merovingian.log
pidfile          
/home/dbfarm//merovingian.pid
sockdir          
/tmp
port            
50000
exittimeout      
60
forward          proxy
discovery        yes
discoveryttl    
600
control          yes
passphrase      
{SHA512}ba3253876aed6bc22d4a6ff53d8406c6ad864195ed144ab5c87621b6c233b548baeae6956df346ec8c17f5ea10f35ee3cbc514797ed7ddd3145464e2a0bab413
mapisock        
/tmp/.s.monetdb.50000
controlsock      
/tmp/.s.merovingian.50000