2 *******************************************************************************
\r
3 * Copyright (C) 2001-2010, International Business Machines Corporation and *
\r
4 * others. All Rights Reserved. *
\r
5 *******************************************************************************
\r
9 * Port From: ICU4C v1.8.1 : format : DateFormatMiscTests
\r
10 * Source File: $ICU4CRoot/source/test/intltest/miscdtfm.cpp
\r
13 package com.ibm.icu.dev.test.format;
\r
15 import java.text.FieldPosition;
\r
16 import java.text.ParseException;
\r
17 import java.util.Date;
\r
18 import java.util.Locale;
\r
20 import com.ibm.icu.text.DateFormatSymbols;
\r
21 import com.ibm.icu.text.SimpleDateFormat;
\r
24 * Performs miscellaneous tests for DateFormat, SimpleDateFormat, DateFormatSymbols
\r
26 public class DateFormatMiscTests extends com.ibm.icu.dev.test.TestFmwk {
\r
28 public static void main(String[] args) throws Exception{
\r
29 new DateFormatMiscTests().run(args);
\r
35 public void Test4097450() {
\r
37 // Date parse requiring 4 digit year.
\r
39 String dstring[] = {
\r
40 "97", "1997", "97", "1997", "01", "2001", "01", "2001",
\r
41 "1", "1", "11", "11", "111", "111"};
\r
45 "yy", "yy", "yyyy", "yyyy", "yy", "yy", "yyyy", "yyyy",
\r
46 "yy", "yyyy", "yy", "yyyy", "yy", "yyyy"};
\r
48 SimpleDateFormat formatter;
\r
49 SimpleDateFormat resultFormatter = new SimpleDateFormat("yyyy");
\r
50 logln("Format\tSource\tResult");
\r
51 logln("-------\t-------\t-------");
\r
52 for (int i = 0; i < dstring.length ; i++) {
\r
53 log(dformat[i] + "\t" + dstring[i] + "\t");
\r
54 formatter = new SimpleDateFormat(dformat[i]);
\r
56 StringBuffer str = new StringBuffer("");
\r
57 FieldPosition pos = new FieldPosition(0);
\r
58 logln(resultFormatter.format(formatter.parse(dstring[i]), str, pos).toString());
\r
60 catch (ParseException exception) {
\r
61 errln("exception --> " + exception);
\r
68 * SimpleDateFormat constructor SimpleDateFormat(String, DateFormatSymbols)
\r
69 * should clone the DateFormatSymbols parameter
\r
71 public void Test4099975new() {
\r
72 Date d = new Date();
\r
73 //test SimpleDateFormat Constructor
\r
75 DateFormatSymbols symbols = new DateFormatSymbols(Locale.US);
\r
76 SimpleDateFormat df = new SimpleDateFormat("E hh:mm", symbols);
\r
77 SimpleDateFormat dfClone = (SimpleDateFormat) df.clone();
\r
79 logln(df.toLocalizedPattern());
\r
80 String s0 = df.format(d);
\r
81 String s_dfClone = dfClone.format(d);
\r
83 symbols.setLocalPatternChars("abcdefghijklmonpqr"); // change value of field
\r
84 logln(df.toLocalizedPattern());
\r
85 String s1 = df.format(d);
\r
87 if (!s1.equals(s0) || !s1.equals(s_dfClone)) {
\r
88 errln("Constructor: the formats are not equal");
\r
90 if (!df.equals(dfClone)) {
\r
91 errln("The Clone Object does not equal with the orignal source");
\r
94 //test SimpleDateFormat.setDateFormatSymbols()
\r
96 DateFormatSymbols symbols = new DateFormatSymbols(Locale.US);
\r
97 SimpleDateFormat df = new SimpleDateFormat("E hh:mm");
\r
98 df.setDateFormatSymbols(symbols);
\r
99 SimpleDateFormat dfClone = (SimpleDateFormat) df.clone();
\r
101 logln(df.toLocalizedPattern());
\r
102 String s0 = df.format(d);
\r
103 String s_dfClone = dfClone.format(d);
\r
105 symbols.setLocalPatternChars("abcdefghijklmonpqr"); // change value of field
\r
106 logln(df.toLocalizedPattern());
\r
107 String s1 = df.format(d);
\r
109 if (!s1.equals(s0) || !s1.equals(s_dfClone)) {
\r
110 errln("setDateFormatSymbols: the formats are not equal");
\r
112 if (!df.equals(dfClone)) {
\r
113 errln("The Clone Object does not equal with the orignal source");
\r
121 public void Test4117335() {
\r
122 final String bc = "\u7D00\u5143\u524D";
\r
123 final String ad = "\u897f\u66a6";
\r
124 final String jstLong = "\u65e5\u672c\u6a19\u6e96\u6642";
\r
125 final String jdtLong = "\u65e5\u672c\u590f\u6642\u9593";
\r
126 final String jstShort = "JST";
\r
127 final String jdtShort = "JDT";
\r
128 final String tzID = "Asia/Tokyo";
\r
130 DateFormatSymbols symbols = new DateFormatSymbols(Locale.JAPAN);
\r
131 final String[] eras = symbols.getEraNames();
\r
133 assertEquals("BC =", bc, eras[0]);
\r
134 assertEquals("AD =", ad, eras[1]);
\r
136 // don't use hard-coded index!
\r
137 final String zones[][] = symbols.getZoneStrings();
\r
139 for (int i = 0; i < zones.length; ++i) {
\r
140 if (tzID.equals(zones[i][0])) {
\r
147 errln("could not find " + tzID);
\r
149 assertEquals("Long zone name = ", jstLong, zones[index][1]);
\r
150 assertEquals("Short zone name = ", jstShort, zones[index][2]);
\r
151 assertEquals("Long zone name (3) = ", jdtLong, zones[index][3]);
\r
152 assertEquals("Short zone name (4) = ", jdtShort, zones[index][4]);
\r