/* ******************************************************************************* * Copyright (C) 2001-2010, International Business Machines Corporation and * * others. All Rights Reserved. * ******************************************************************************* */ /* * New added, 2001-10-17 [Jing/GCL] */ package com.ibm.icu.dev.test.format; import java.text.ParseException; import java.text.ParsePosition; import java.util.Date; import java.util.Locale; import com.ibm.icu.text.DateFormat; import com.ibm.icu.text.DateFormatSymbols; import com.ibm.icu.text.SimpleDateFormat; import com.ibm.icu.util.Calendar; import com.ibm.icu.util.TimeZone; public class DateFormatRegressionTestJ extends com.ibm.icu.dev.test.TestFmwk { private static final String TIME_STRING = "2000/11/17 08:01:00"; private static final long UTC_LONG = 974476860000L; private static SimpleDateFormat sdf_; protected void init()throws Exception{ sdf_ = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss"); } public static void main(String[] args) throws Exception { new DateFormatRegressionTestJ().run(args); } //Return value of getAmPmStrings public void Test4103926() { String act_Ampms[]; String exp_Ampms[]={"AM","PM"}; Locale.setDefault(Locale.US); DateFormatSymbols dfs = new DateFormatSymbols(); act_Ampms = dfs.getAmPmStrings(); if(act_Ampms.length != exp_Ampms.length) { errln("The result is not expected!"); } else { for(int i =0; i" + str); d = sdf.parse(str, new ParsePosition(0)); logln(" after parse----->" + d.toString()); str = sdf.format(d); logln(" after format----->" + str); d = sdf.parse(str, new ParsePosition(0)); logln(" after parse----->" + d.toString()); str = sdf.format(d); logln(" after format----->" + str); } } //Class used by Test4407042 class DateParseThread extends Thread { public void run() { SimpleDateFormat sdf = (SimpleDateFormat) sdf_.clone(); TimeZone defaultTZ = TimeZone.getDefault(); TimeZone PST = TimeZone.getTimeZone("PST"); int defaultOffset = defaultTZ.getRawOffset(); int PSTOffset = PST.getRawOffset(); int offset = defaultOffset - PSTOffset; long ms = UTC_LONG - offset; try { int i = 0; while (i < 10000) { Date date = sdf.parse(TIME_STRING); long t = date.getTime(); i++; if (t != ms) { throw new ParseException("Parse Error: " + i + " (" + sdf.format(date) + ") " + t + " != " + ms, 0); } } } catch (Exception e) { errln("parse error: " + e.getMessage()); } } } //Class used by Test4407042 class DateFormatThread extends Thread { public void run() { SimpleDateFormat sdf = (SimpleDateFormat) sdf_.clone(); TimeZone tz = TimeZone.getTimeZone("PST"); sdf.setTimeZone(tz); int i = 0; while (i < 10000) { i++; String s = sdf.format(new Date(UTC_LONG)); if (!s.equals(TIME_STRING)) { errln("Format Error: " + i + " " + s + " != " + TIME_STRING); } } } } }