/* * Copyright (c) 2003, 2022, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License version 2 only, as * published by the Free Software Foundation. * * This code is distributed in the hope that it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License * version 2 for more details (a copy is included in the LICENSE file that * accompanied this code). * * You should have received a copy of the GNU General Public License version * 2 along with this work; if not, write to the Free Software Foundation, * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. * * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA * or visit www.oracle.com if you need additional information or have any * questions.
*/
/* Type-specific source code for unit test * * Regenerate the BasicX classes via genBasic.sh whenever this file changes. * We check in the generated source files so that the test tree can be used * independently of the rest of the source tree.
*/
// -- This file was mechanically generated: Do not edit! -- //
// Date/long do not have timezone information so they will always use // the default timezone.
String nexp = (fs.equals("%tZ") || fs.equals("%TZ")
|| fs.equals("%tc") || fs.equals("%Tc")
? exp.replace("PST", "GMT-08:00")
: exp);
// Date (implemented via conversion to Calendar)
Date d = c.getTime();
test(fs, nexp, d);
test((Locale)null, fs, nexp, d);
test(Locale.US, fs, nexp, d);
// long (implemented via conversion to Calendar) long l = c.getTimeInMillis();
test(fs, nexp, l);
test((Locale)null, fs, nexp, l);
test(Locale.US, fs, nexp, l);
if (upper) // repeat all tests for upper case variant (%T)
testDateTime(Pattern.compile("t").matcher(fs).replaceFirst("T"),
exp.toUpperCase(), c, false);
}
privatestaticvoid testHours() { for (int i = 0; i < 24; i++) { // GregorianCalendar(int year, int month, int dayOfMonth, // int hourOfDay, int minute, int second);
Calendar c = new GregorianCalendar(1995, MAY, 23, i, 48, 34);
//----------------------------------------------------------------- // DateTime.HOUR_OF_DAY - 'k' (0 - 23) -- like H //-----------------------------------------------------------------
String exp = Integer.toString(i);
testDateTime("%tk", exp, c);
//----------------------------------------------------------------- // DateTime.HOUR - 'l' (1 - 12) -- like I //----------------------------------------------------------------- int v = i % 12;
v = (v == 0 ? 12 : v);
String exp2 = Integer.toString(v);
testDateTime("%tl", exp2, c);
// Any characters not explicitly defined as conversions, date/time // conversion suffixes, or flags are illegal and are reserved for // future extensions. Use of such a character in a format string will // cause an UnknownFormatConversionException or // UnknownFormatFlagsException to be thrown.
tryCatch("%q", UnknownFormatConversionException.class);
tryCatch("%t&", UnknownFormatConversionException.class);
tryCatch("%&d", UnknownFormatConversionException.class);
tryCatch("%^b", UnknownFormatConversionException.class);
//--------------------------------------------------------------------- // Formatter.java class javadoc examples //---------------------------------------------------------------------
test(Locale.FRANCE, "e = %+10.4f", "e = +2,7183", Math.E);
test("%4$2s %3$2s %2$2s %1$2s", " d c b a", "a", "b", "c", "d");
test("Amount gained or lost since last statement: $ %,(.2f", "Amount gained or lost since last statement: $ (6,217.58)",
(new BigDecimal("-6217.58")));
Calendar c = new GregorianCalendar(1969, JULY, 20, 16, 17, 0);
testSysOut("Local time: %tT", "Local time: 16:17:00", c);
test("Unable to open file '%1$s': %2$s", "Unable to open file 'food': No such file or directory", "food", "No such file or directory");
Calendar duke = new GregorianCalendar(1995, MAY, 23, 19, 48, 34);
duke.set(Calendar.MILLISECOND, 584);
test("Duke's Birthday: %1$tB %1$te, %1$tY", "Duke's Birthday: May 23, 1995",
duke);
test("Duke's Birthday: %1$tB %1$te, %1$tY", "Duke's Birthday: May 23, 1995",
duke.getTime());
test("Duke's Birthday: %1$tB %1$te, %1$tY", "Duke's Birthday: May 23, 1995",
duke.getTimeInMillis());
test("%4$s %3$s %2$s %1$s %4$s %3$s %2$s %1$s", "d c b a d c b a", "a", "b", "c", "d");
test("%s %s %, "a b b b", "a", "b", "c", "d");
test("%s %s %s %s", "a b c d", "a", "b", "c", "d");
test("%2$s %s %, "b a a b", "a", "b", "c", "d");
// Boolean.java hardcodes the Strings for "true" and "false", so no // localization is possible.
test(Locale.FRANCE, "%b", "true", true);
test(Locale.FRANCE, "%b", "false", false);
// If you pass in a single array to a varargs method, the compiler // uses it as the array of arguments rather than treating it as a // single array-type argument.
test("%b", "false", (Object[])new String[2]);
test("%b", "true", new String[2], new String[2]);
int [] ia = { 1, 2, 3 };
test("%b", "true", ia);
//--------------------------------------------------------------------- // %b - errors //---------------------------------------------------------------------
tryCatch("%#b", FormatFlagsConversionMismatchException.class);
tryCatch("%-b", MissingFormatWidthException.class); // correct or side-effect of implementation?
tryCatch("%.b", UnknownFormatConversionException.class);
tryCatch("%,b", FormatFlagsConversionMismatchException.class);
//--------------------------------------------------------------------- // %c // // General conversion applicable to any argument. //---------------------------------------------------------------------
test("%c", "i", 'i');
test("%C", "I", 'i');
test("%4c", " i", 'i');
test("%-4c", "i ", 'i');
test("%4C", " I", 'i');
test("%-4C", "I ", 'i');
test("%c", "i", Character.valueOf('i'));
test("%c", "H", (byte) 72);
test("%c", "i", (short) 105);
test("%c", "!", (int) 33);
test("%c", "\u007F", Byte.MAX_VALUE);
test("%c", new String(Character.toChars(Short.MAX_VALUE)), Short.MAX_VALUE);
test("%c", "null", (Object) null);
//--------------------------------------------------------------------- // %t - create test Calendar //---------------------------------------------------------------------
// Get the supported ids for GMT-08:00 (Pacific Standard Time)
String[] ids = TimeZone.getAvailableIDs(-8 * 60 * 60 * 1000); // Create a Pacific Standard Time time zone
SimpleTimeZone tz = new SimpleTimeZone(-8 * 60 * 60 * 1000, ids[0]); // public GregorianCalendar(TimeZone zone, Locale aLocale);
Calendar c0 = new GregorianCalendar(tz, Locale.US); // public final void set(int year, int month, int date, // int hourOfDay, int minute, int second);
c0.set(1995, MAY, 23, 19, 48, 34);
c0.set(Calendar.MILLISECOND, 584);
//--------------------------------------------------------------------- // %t - Minutes, {nano,milli}*seconds // // testDateTime() verifies the expected output for all applicable types // (Calendar, Date, and long). It also verifies output for "%t" and // "%T". Thus it is sufficient to invoke that method once per // conversion/expected output. //---------------------------------------------------------------------
testDateTime("%tM", "48", c0);
testDateTime("%tN", "584000000", c0);
testDateTime("%tL", "584", c0); // testDateTime("%tQ", "801283714584", c0);
// Restore the TimeZone and verify
TimeZone.setDefault(dtz); if (atz.hasSameRules(TimeZone.getDefault())) thrownew RuntimeException("Default TimeZone not restored");
tryCatch("%%%", UnknownFormatConversionException.class); // perhaps an IllegalFormatArgumentIndexException should be defined?
tryCatch("%<%", IllegalFormatFlagsException.class);
}
}
¤ Dauer der Verarbeitung: 0.2 Sekunden
(vorverarbeitet)
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung ist noch experimentell.