Message from discussion
Timezones and versions of Java
Path: g2news1.google.com!postnews.google.com!j13g2000pro.googlegroups.com!not-for-mail
From: loial <jldunn2...@gmail.com>
Newsgroups: comp.lang.java.programmer
Subject: Timezones and versions of Java
Date: Mon, 23 May 2011 07:38:54 -0700 (PDT)
Organization: http://groups.google.com
Lines: 72
Message-ID: <fde67e7a-6198-4e7f-a07b-4655c1108d15@j13g2000pro.googlegroups.com>
NNTP-Posting-Host: 92.27.96.235
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1
X-Trace: posting.google.com 1306161534 3395 127.0.0.1 (23 May 2011 14:38:54 GMT)
X-Complaints-To: groups-abuse@google.com
NNTP-Posting-Date: Mon, 23 May 2011 14:38:54 +0000 (UTC)
Complaints-To: groups-abuse@google.com
Injection-Info: j13g2000pro.googlegroups.com; posting-host=92.27.96.235; posting-account=ORTvxwoAAADiCmwF40GLsX3U6yAOA5M5
User-Agent: G2/1.0
X-HTTP-UserAgent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR
1.1.4322; MS-RTC LM 8; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729),gzip(gfe)
I am trying to convert BST times to EST.
The following code correctly returns a difference of 5 hours between
the 2 times when run under Java 1.5. :
Local Offset 3600000
EST Offset -14400000
EST time Tue May 04 07:48:18 2010
BST time Tue May 04 12:48:18 2010
However if run under Java 1.6 (on the same machine), it returns a time
difference of 6 hours :
Local Offset 3600000
EST Offset -18000000
EST time Tue May 04 06:48:18 2010
BST time Tue May 04 12:48:18 2010
Do I need to do something different in Java 1.6?.
Platform is linux.
class testtz {
public static void main(String[] args) {
Date date = null;
SimpleDateFormat dateFormat = new
SimpleDateFormat("yyyyMMddHHmmss");
try {
date = dateFormat.parse("20100504124818");
}
catch(ParseException pe) {
System.out.println("Error");
}
TimeZone tz1 = TimeZone.getDefault();
long localOffset = tz1.getOffset(date.getTime());
System.out.println("Local Offset " + localOffset);
TimeZone tz2 = TimeZone.getTimeZone("EST");
long remoteOffset = tz2.getOffset(date.getTime());
System.out.println("EST Offset " + remoteOffset);
Date dateToPutInDB = new Date(date.getTime() - localOffset +
remoteOffse;
System.out.println("EST time " + dateToPutInDB)
System.out.println("BST time " + date);
}
}