Обсуждение: Patch for JDBC timezone problems
The attached patch fixes the problems that the JDBC driver has with
timezones in getTimestamp. The issues were described in an earlier
post, this is just the patch.
Andrew Merrill
*** ./src/interfaces/jdbc/postgresql/jdbc1/ResultSet.java.orig Tue May 11 09:39:37 1999
--- ./src/interfaces/jdbc/postgresql/jdbc1/ResultSet.java Tue May 11 09:40:56 1999
***************
*** 438,449 ****
if (s != null)
{
int TZ = new Float(s.substring(19)).intValue();
TZ = TZ * 60 * 60 * 1000;
TimeZone zone = TimeZone.getDefault();
zone.setRawOffset(TZ);
String nm = zone.getID();
! s = s.substring(0,18) + nm;
try {
java.util.Date d = df.parse(s);
return new Timestamp(d.getTime());
--- 438,451 ----
if (s != null)
{
+ /* commented out by Andrew Merrill 5/1999
int TZ = new Float(s.substring(19)).intValue();
TZ = TZ * 60 * 60 * 1000;
TimeZone zone = TimeZone.getDefault();
zone.setRawOffset(TZ);
String nm = zone.getID();
! s = s.substring(0,19) + nm;
! */
try {
java.util.Date d = df.parse(s);
return new Timestamp(d.getTime());
*** ./src/interfaces/jdbc/postgresql/jdbc2/ResultSet.java.orig Tue May 11 09:41:14 1999
--- ./src/interfaces/jdbc/postgresql/jdbc2/ResultSet.java Tue May 11 09:42:16 1999
***************
*** 440,451 ****
if (s != null)
{
int TZ = new Float(s.substring(19)).intValue();
TZ = TZ * 60 * 60 * 1000;
TimeZone zone = TimeZone.getDefault();
zone.setRawOffset(TZ);
String nm = zone.getID();
! s = s.substring(0,18) + nm;
try {
java.util.Date d = df.parse(s);
return new Timestamp(d.getTime());
--- 440,453 ----
if (s != null)
{
+ /* commented out by Andrew Merrill 5/1999
int TZ = new Float(s.substring(19)).intValue();
TZ = TZ * 60 * 60 * 1000;
TimeZone zone = TimeZone.getDefault();
zone.setRawOffset(TZ);
String nm = zone.getID();
! s = s.substring(0,19) + nm;
! */
try {
java.util.Date d = df.parse(s);
return new Timestamp(d.getTime());
This was never applied. Can someone tell me if it should be. Peter?
> The attached patch fixes the problems that the JDBC driver has with
> timezones in getTimestamp. The issues were described in an earlier
> post, this is just the patch.
>
> Andrew Merrill
>
> *** ./src/interfaces/jdbc/postgresql/jdbc1/ResultSet.java.orig Tue May 11 09:39:37 1999
> --- ./src/interfaces/jdbc/postgresql/jdbc1/ResultSet.java Tue May 11 09:40:56 1999
> ***************
> *** 438,449 ****
>
> if (s != null)
> {
> int TZ = new Float(s.substring(19)).intValue();
> TZ = TZ * 60 * 60 * 1000;
> TimeZone zone = TimeZone.getDefault();
> zone.setRawOffset(TZ);
> String nm = zone.getID();
> ! s = s.substring(0,18) + nm;
> try {
> java.util.Date d = df.parse(s);
> return new Timestamp(d.getTime());
> --- 438,451 ----
>
> if (s != null)
> {
> + /* commented out by Andrew Merrill 5/1999
> int TZ = new Float(s.substring(19)).intValue();
> TZ = TZ * 60 * 60 * 1000;
> TimeZone zone = TimeZone.getDefault();
> zone.setRawOffset(TZ);
> String nm = zone.getID();
> ! s = s.substring(0,19) + nm;
> ! */
> try {
> java.util.Date d = df.parse(s);
> return new Timestamp(d.getTime());
> *** ./src/interfaces/jdbc/postgresql/jdbc2/ResultSet.java.orig Tue May 11 09:41:14 1999
> --- ./src/interfaces/jdbc/postgresql/jdbc2/ResultSet.java Tue May 11 09:42:16 1999
> ***************
> *** 440,451 ****
>
> if (s != null)
> {
> int TZ = new Float(s.substring(19)).intValue();
> TZ = TZ * 60 * 60 * 1000;
> TimeZone zone = TimeZone.getDefault();
> zone.setRawOffset(TZ);
> String nm = zone.getID();
> ! s = s.substring(0,18) + nm;
> try {
> java.util.Date d = df.parse(s);
> return new Timestamp(d.getTime());
> --- 440,453 ----
>
> if (s != null)
> {
> + /* commented out by Andrew Merrill 5/1999
> int TZ = new Float(s.substring(19)).intValue();
> TZ = TZ * 60 * 60 * 1000;
> TimeZone zone = TimeZone.getDefault();
> zone.setRawOffset(TZ);
> String nm = zone.getID();
> ! s = s.substring(0,19) + nm;
> ! */
> try {
> java.util.Date d = df.parse(s);
> return new Timestamp(d.getTime());
-- Bruce Momjian | http://www.op.net/~candle maillist@candle.pha.pa.us | (610)
853-3000+ If your life is a hard drive, | 830 Blythe Avenue + Christ can be your backup. | Drexel Hill,
Pennsylvania19026