Thanks guys for your help. After tinkering with the problem for a bit I decided that it was safer to store the date as a long (BIGINT) value, the number of milliseonds since 1970 or so. Then I can be sure which time it is!

John.

Greg Monroe wrote:

Hmm, I think I found where this is happening but am not sure how to fix
it. This may be different in the current RC but the problem looks to be is in the Village Value object.

Date fields in the generated Peer object's populateObject method, use:

    row.getValue(offset+#).asUtilDate()

to get the date object.  In the Value.asUtilDate() method, there is a
call to
Calendar.getInstance() to create an object used in creating the Date
object returned.
The getInstance() method will use the default locale... hence, the BST
vs UTC problem.

The Value class in the Village code stream could be patched to fix this,
but since
Village is another (very quiet) project, it's probably not a good thing.
I know there has been talk/coding toward getting rid of the Village
dependencies but I'm
not sure of the status of these.

If possible, the short term fix might be to make sure your Java apps
default time
zone matches your DB's time zone. (I KNOW!... major kludge... but if it
works...)

I'm not really sure why Village is using a Calendar object to repackage
the good
Date object that is returned by the JDBC native code.  Probably like
most bad date code, it's due to someone who got confused by Sun's confusing
implimentation.
(I speaks from experience with coding shared calendars that people
across the world used...dates and timezones and leap stuff is never simple as it seems.)

Good luck.

Greg


-----Original Message-----
From: John Dunne
Thanks Malcolm,

I believe the odd conversion I'm seeing lies with Torque since when I read in a table row, the java.util.Date object I get back for the DATETIME column is GMT British Summer Time which is incorrect since the mysql database is storing the time value as UTC. I believe (correct me if I'm wrong ayone!) Torque is confused to as what timezone the value it read should be and assumed it to be the same as Java's default TimeZone (which is currently GMT britishsummertime) resulting in the time shifting by an hour (equal to the offset for british summer time) when it is saved. Also, the long values are different just before save and on retrival.

So, is it possible to inform Torque that a DATETIME value it reads from a database is of a particular timezone?

Thanks,
John.



Duke CE Privacy Statement
Please be advised that this e-mail and any files transmitted with it are 
confidential communication or may otherwise be privileged or confidential and 
are intended solely for the individual or entity to whom they are addressed.  
If you are not the intended recipient you may not rely on the contents of this 
email or any attachments, and we ask that you  please not read, copy or 
retransmit this communication, but reply to the sender and destroy the email, 
its contents, and all copies thereof immediately.  Any unauthorized 
dissemination, distribution or copying of this communication is strictly 
prohibited.



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]




Reply via email to