This example illustrates setting up a different time zone.
import com.imsl.stat.TimeSeries;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.TimeZone;
public class TimeSeriesEx2 {
public static void main(String args[]) throws ParseException {
String dateStrings[] = {"11/23/2011 11:13:27", "9/14/2011 13:15:10", "7/28/2012 20:18:32",
"8/7/2012 00:00:16", "6/3/2011 1:21:03", "9/14/2011 17:18:22"
};
double data[] = {-1.0, 2.5, 6.773, -8.92, 4.117, 16.27};
Date dates[] = new Date[data.length];
SimpleDateFormat dateFormat = new SimpleDateFormat("M/d/y H:mm:ss");
SimpleDateFormat printDateFormat = new SimpleDateFormat("M/d/y H:mm:ss, a");
for (int i = 0; i < data.length; i++) {
dates[i] = dateFormat.parse(dateStrings[i]);
}
TimeSeries ts;
ts = new TimeSeries();
ts.setSeriesValues(data);
ts.setDates(dates);
System.out.println("Local Timezone offset in hours is " + ts.getTimeZoneOffset());
System.out.println("Local Timezone name is " + ts.getTimeZone().getID());
/* Note: changing the time zone does not change the time values that
were set in setValues(). Subtract the offset in order to adjust the
times, if necessary.
*/
ts.setTimeZone(-8, "PST");
TimeZone tz = ts.getTimeZone();
System.out.println("New offset is " + ts.getTimeZoneOffset());
System.out.println("New name is " + tz.getID());
/* Default printing will use the local time zone. Here is the manual
way to print the time zone that was set. */
System.out.println(printDateFormat.format(ts.getDates()[4]) + " "
+ tz.getDisplayName());
/* Use the offset to display the equivalent GMT time */
Date gmtTime = new Date(ts.getDates()[4].getTime() - ts.getTimeZoneOffset() * 60 * 60 * 1000);
System.out.println(printDateFormat.format(gmtTime) + " GMT ");
}
}
Local Timezone offset in hours is -6 Local Timezone name is America/Chicago New offset is -8 New name is PST 7/28/2012 20:18:32, PM Pacific Standard Time 7/29/2012 4:18:32, AM GMTLink to Java source.