1bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert/* 2bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * Copyright (C) 1996-2012, International Business Machines 3bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * Corporation and others. All Rights Reserved. 4bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert */ 5bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert 6bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubertpackage com.ibm.icu.text; 7bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert 8bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubertimport java.io.InvalidObjectException; 9bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubertimport java.text.FieldPosition; 10bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubertimport java.text.Format; 11bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubertimport java.text.ParseException; 12bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubertimport java.text.ParsePosition; 13bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubertimport java.util.Date; 14bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubertimport java.util.HashMap; 15bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubertimport java.util.Locale; 16bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubertimport java.util.Map; 17bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert 18bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubertimport com.ibm.icu.util.Calendar; 19bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubertimport com.ibm.icu.util.TimeZone; 20bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubertimport com.ibm.icu.util.ULocale; 21bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubertimport com.ibm.icu.util.ULocale.Category; 22bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert 23bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert/** 24bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * {@icuenhanced java.text.DateFormat}.{@icu _usage_} 25bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * 26bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * <p>DateFormat is an abstract class for date/time formatting subclasses which 27bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * formats and parses dates or time in a language-independent manner. 28bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * The date/time formatting subclass, such as SimpleDateFormat, allows for 29bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * formatting (i.e., date -> text), parsing (text -> date), and 30bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * normalization. The date is represented as a <code>Date</code> object or 31bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * as the milliseconds since January 1, 1970, 00:00:00 GMT. 32bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * 33bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * <p>DateFormat provides many class methods for obtaining default date/time 34bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * formatters based on the default or a given locale and a number of formatting 35bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * styles. The formatting styles include FULL, LONG, MEDIUM, and SHORT. More 36bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * detail and examples of using these styles are provided in the method 37bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * descriptions. 38bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * 39bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * <p>DateFormat helps you to format and parse dates for any locale. 40bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * Your code can be completely independent of the locale conventions for 41bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * months, days of the week, or even the calendar format: lunar vs. solar. 42bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * 43bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * <p>To format a date for the current Locale, use one of the 44bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * static factory methods: 45bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * <pre> 46bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * myString = DateFormat.getDateInstance().format(myDate); 47bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * </pre> 48bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * <p>If you are formatting multiple numbers, it is 49bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * more efficient to get the format and use it multiple times so that 50bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * the system doesn't have to fetch the information about the local 51bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * language and country conventions multiple times. 52bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * <pre> 53bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * DateFormat df = DateFormat.getDateInstance(); 54bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * for (int i = 0; i < a.length; ++i) { 55bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * output.println(df.format(myDate[i]) + "; "); 56bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * } 57bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * </pre> 58bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * <p>To format a number for a different Locale, specify it in the 59bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * call to getDateInstance(). 60bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * <pre> 61bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * DateFormat df = DateFormat.getDateInstance(DateFormat.LONG, Locale.FRANCE); 62bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * </pre> 63bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * <p>You can use a DateFormat to parse also. 64bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * <pre> 65bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * myDate = df.parse(myString); 66bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * </pre> 67bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * <p>Use getDateInstance to get the normal date format for that country. 68bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * There are other static factory methods available. 69bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * Use getTimeInstance to get the time format for that country. 70bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * Use getDateTimeInstance to get a date and time format. You can pass in 71bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * different options to these factory methods to control the length of the 72bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * result; from SHORT to MEDIUM to LONG to FULL. The exact result depends 73bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * on the locale, but generally: 74bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * <ul><li>SHORT is completely numeric, such as 12.13.52 or 3:30pm 75bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * <li>MEDIUM is longer, such as Jan 12, 1952 76bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * <li>LONG is longer, such as January 12, 1952 or 3:30:32pm 77bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * <li>FULL is pretty completely specified, such as 78bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * Tuesday, April 12, 1952 AD or 3:30:42pm PST. 79bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * </ul> 80bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * 81bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * <p>You can also set the time zone on the format if you wish. 82bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * If you want even more control over the format or parsing, 83bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * (or want to give your users more control), 84bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * you can try casting the DateFormat you get from the factory methods 85bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * to a SimpleDateFormat. This will work for the majority 86bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * of countries; just remember to put it in a try block in case you 87bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * encounter an unusual one. 88bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * 89bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * <p>You can also use forms of the parse and format methods with 90bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * ParsePosition and FieldPosition to 91bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * allow you to 92bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * <ul><li>progressively parse through pieces of a string. 93bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * <li>align any particular field, or find out where it is for selection 94bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * on the screen. 95bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * </ul> 96bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * 97bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * <h4>Synchronization</h4> 98bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * 99bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * Date formats are not synchronized. It is recommended to create separate 100bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * format instances for each thread. If multiple threads access a format 101bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * concurrently, it must be synchronized externally. 102bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * 103bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @see UFormat 104bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @see NumberFormat 105bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @see SimpleDateFormat 106bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @see com.ibm.icu.util.Calendar 107bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @see com.ibm.icu.util.GregorianCalendar 108bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @see com.ibm.icu.util.TimeZone 109bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @author Mark Davis, Chen-Lieh Huang, Alan Liu 110bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @stable ICU 2.0 111bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert */ 112bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubertpublic class DateFormat extends Format { 113bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert 114bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert private static final long serialVersionUID = 1L; 115bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert 116bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert /** 117bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @internal 118bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert */ 119bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert public final java.text.DateFormat dateFormat; 120bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert 121bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert /** 122bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @internal 123bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @param delegate the DateFormat to which to delegate 124bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert */ 125bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert public DateFormat(java.text.DateFormat delegate) { 126bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert this.dateFormat = delegate; 127bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert } 128bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert 129bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert /** 130bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * For subclass use. Subclasses will generally not 131bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * work correctly unless they manipulate the delegate. 132bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert */ 133bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert protected DateFormat() { 134bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert this.dateFormat = java.text.DateFormat.getDateTimeInstance( 135bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert java.text.DateFormat.SHORT, 136bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert java.text.DateFormat.SHORT, 137bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert ULocale.getDefault(Category.FORMAT).toLocale()); 138bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert } 139bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert 140bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert /** 141bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * FieldPosition selector for 'G' field alignment, 142bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * corresponding to the {@link Calendar#ERA} field. 143bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @stable ICU 2.0 144bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert */ 145bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert public final static int ERA_FIELD = 0; 146bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert 147bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert /** 148bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * FieldPosition selector for 'y' field alignment, 149bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * corresponding to the {@link Calendar#YEAR} field. 150bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @stable ICU 2.0 151bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert */ 152bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert public final static int YEAR_FIELD = 1; 153bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert 154bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert /** 155bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * FieldPosition selector for 'M' field alignment, 156bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * corresponding to the {@link Calendar#MONTH} field. 157bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @stable ICU 2.0 158bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert */ 159bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert public final static int MONTH_FIELD = 2; 160bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert 161bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert /** 162bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * FieldPosition selector for 'd' field alignment, 163bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * corresponding to the {@link Calendar#DATE} field. 164bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @stable ICU 2.0 165bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert */ 166bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert public final static int DATE_FIELD = 3; 167bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert 168bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert /** 169bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * FieldPosition selector for 'k' field alignment, 170bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * corresponding to the {@link Calendar#HOUR_OF_DAY} field. 171bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * HOUR_OF_DAY1_FIELD is used for the one-based 24-hour clock. 172bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * For example, 23:59 + 01:00 results in 24:59. 173bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @stable ICU 2.0 174bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert */ 175bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert public final static int HOUR_OF_DAY1_FIELD = 4; 176bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert 177bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert /** 178bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * FieldPosition selector for 'H' field alignment, 179bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * corresponding to the {@link Calendar#HOUR_OF_DAY} field. 180bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * HOUR_OF_DAY0_FIELD is used for the zero-based 24-hour clock. 181bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * For example, 23:59 + 01:00 results in 00:59. 182bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @stable ICU 2.0 183bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert */ 184bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert public final static int HOUR_OF_DAY0_FIELD = 5; 185bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert 186bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert /** 187bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * FieldPosition selector for 'm' field alignment, 188bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * corresponding to the {@link Calendar#MINUTE} field. 189bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @stable ICU 2.0 190bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert */ 191bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert public final static int MINUTE_FIELD = 6; 192bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert 193bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert /** 194bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * FieldPosition selector for 's' field alignment, 195bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * corresponding to the {@link Calendar#SECOND} field. 196bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @stable ICU 2.0 197bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert */ 198bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert public final static int SECOND_FIELD = 7; 199bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert 200bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert /** 201bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * {@icu} FieldPosition selector for 'S' field alignment, 202bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * corresponding to the {@link Calendar#MILLISECOND} field. 203bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @stable ICU 3.0 204bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert */ 205bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert public final static int FRACTIONAL_SECOND_FIELD = 8; 206bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert 207bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert /** 208bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * Alias for FRACTIONAL_SECOND_FIELD. 209bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @stable ICU 3.0 FRACTIONAL_SECOND_FIELD. 210bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert */ 211bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert public final static int MILLISECOND_FIELD = FRACTIONAL_SECOND_FIELD; 212bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert 213bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert /** 214bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * FieldPosition selector for 'E' field alignment, 215bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * corresponding to the {@link Calendar#DAY_OF_WEEK} field. 216bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @stable ICU 2.0 217bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert */ 218bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert public final static int DAY_OF_WEEK_FIELD = 9; 219bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert 220bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert /** 221bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * FieldPosition selector for 'D' field alignment, 222bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * corresponding to the {@link Calendar#DAY_OF_YEAR} field. 223bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @stable ICU 2.0 224bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert */ 225bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert public final static int DAY_OF_YEAR_FIELD = 10; 226bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert 227bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert /** 228bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * FieldPosition selector for 'F' field alignment, 229bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * corresponding to the {@link Calendar#DAY_OF_WEEK_IN_MONTH} field. 230bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @stable ICU 2.0 231bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert */ 232bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert public final static int DAY_OF_WEEK_IN_MONTH_FIELD = 11; 233bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert 234bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert /** 235bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * FieldPosition selector for 'w' field alignment, 236bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * corresponding to the {@link Calendar#WEEK_OF_YEAR} field. 237bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @stable ICU 2.0 238bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert */ 239bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert public final static int WEEK_OF_YEAR_FIELD = 12; 240bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert 241bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert /** 242bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * FieldPosition selector for 'W' field alignment, 243bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * corresponding to the {@link Calendar#WEEK_OF_MONTH} field. 244bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @stable ICU 2.0 245bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert */ 246bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert public final static int WEEK_OF_MONTH_FIELD = 13; 247bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert 248bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert /** 249bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * FieldPosition selector for 'a' field alignment, 250bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * corresponding to the {@link Calendar#AM_PM} field. 251bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @stable ICU 2.0 252bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert */ 253bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert public final static int AM_PM_FIELD = 14; 254bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert 255bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert /** 256bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * FieldPosition selector for 'h' field alignment, 257bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * corresponding to the {@link Calendar#HOUR} field. 258bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * HOUR1_FIELD is used for the one-based 12-hour clock. 259bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * For example, 11:30 PM + 1 hour results in 12:30 AM. 260bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @stable ICU 2.0 261bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert */ 262bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert public final static int HOUR1_FIELD = 15; 263bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert 264bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert /** 265bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * FieldPosition selector for 'K' field alignment, 266bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * corresponding to the {@link Calendar#HOUR} field. 267bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * HOUR0_FIELD is used for the zero-based 12-hour clock. 268bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * For example, 11:30 PM + 1 hour results in 00:30 AM. 269bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @stable ICU 2.0 270bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert */ 271bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert public final static int HOUR0_FIELD = 16; 272bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert 273bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert /** 274bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * FieldPosition selector for 'z' field alignment, 275bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * corresponding to the {@link Calendar#ZONE_OFFSET} and 276bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * {@link Calendar#DST_OFFSET} fields. 277bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @stable ICU 2.0 278bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert */ 279bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert public final static int TIMEZONE_FIELD = 17; 280bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert 281bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert /** 282bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * {@icu} FieldPosition selector for 'Y' field alignment, 283bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * corresponding to the {@link Calendar#YEAR_WOY} field. 284bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @stable ICU 3.0 285bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert */ 286bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert public final static int YEAR_WOY_FIELD = 18; 287bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert 288bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert /** 289bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * {@icu} FieldPosition selector for 'e' field alignment, 290bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * corresponding to the {@link Calendar#DOW_LOCAL} field. 291bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @stable ICU 3.0 292bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert */ 293bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert public final static int DOW_LOCAL_FIELD = 19; 294bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert 295bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert /** 296bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * {@icu} FieldPosition selector for 'u' field alignment, 297bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * corresponding to the {@link Calendar#EXTENDED_YEAR} field. 298bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @stable ICU 3.0 299bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert */ 300bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert public final static int EXTENDED_YEAR_FIELD = 20; 301bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert 302bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert /** 303bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * {@icu} FieldPosition selector for 'g' field alignment, 304bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * corresponding to the {@link Calendar#JULIAN_DAY} field. 305bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @stable ICU 3.0 306bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert */ 307bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert public final static int JULIAN_DAY_FIELD = 21; 308bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert 309bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert /** 310bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * {@icu} FieldPosition selector for 'A' field alignment, 311bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * corresponding to the {@link Calendar#MILLISECONDS_IN_DAY} field. 312bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @stable ICU 3.0 313bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert */ 314bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert public final static int MILLISECONDS_IN_DAY_FIELD = 22; 315bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert 316bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert /** 317bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * {@icu} FieldPosition selector for 'Z' field alignment, 318bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * corresponding to the {@link Calendar#ZONE_OFFSET} and 319bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * {@link Calendar#DST_OFFSET} fields. 320bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @stable ICU 3.0 321bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert */ 322bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert public final static int TIMEZONE_RFC_FIELD = 23; 323bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert 324bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert /** 325bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * {@icu} FieldPosition selector for 'v' field alignment, 326bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * corresponding to the {@link Calendar#ZONE_OFFSET} and 327bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * {@link Calendar#DST_OFFSET} fields. This displays the generic zone 328bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * name, if available. 329bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @stable ICU 3.4 330bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert */ 331bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert public final static int TIMEZONE_GENERIC_FIELD = 24; 332bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert 333bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert /** 334bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * {@icu} FieldPosition selector for 'c' field alignment, 335bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * corresponding to the {@link Calendar#DAY_OF_WEEK} field. 336bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * This displays the stand alone day name, if available. 337bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @stable ICU 3.4 338bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert */ 339bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert public final static int STANDALONE_DAY_FIELD = 25; 340bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert 341bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert /** 342bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * {@icu} FieldPosition selector for 'L' field alignment, 343bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * corresponding to the {@link Calendar#MONTH} field. 344bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * This displays the stand alone month name, if available. 345bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @stable ICU 3.4 346bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert */ 347bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert public final static int STANDALONE_MONTH_FIELD = 26; 348bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert 349bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert /** 350bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * {@icu} FieldPosition selector for 'Q' field alignment, 351bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * corresponding to the {@link Calendar#MONTH} field. 352bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * This displays the quarter. 353bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @stable ICU 3.6 354bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert */ 355bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert public final static int QUARTER_FIELD = 27; 356bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert 357bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert /** 358bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * {@icu} FieldPosition selector for 'q' field alignment, 359bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * corresponding to the {@link Calendar#MONTH} field. 360bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * This displays the stand alone quarter, if available. 361bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @stable ICU 3.6 362bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert */ 363bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert public final static int STANDALONE_QUARTER_FIELD = 28; 364bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert 365bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert /** 366bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * {@icu} FieldPosition selector for 'V' field alignment, 367bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * corresponding to the {@link Calendar#ZONE_OFFSET} and 368bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * {@link Calendar#DST_OFFSET} fields. This displays the fallback timezone 369bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * name when VVVV is specified, and the short standard or daylight 370bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * timezone name ignoring commonlyUsed when a single V is specified. 371bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @stable ICU 3.8 372bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert */ 373bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert public final static int TIMEZONE_SPECIAL_FIELD = 29; 374bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert 375bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert /** 376bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * {@icu} Number of FieldPosition selectors for DateFormat. 377bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * Valid selectors range from 0 to FIELD_COUNT-1. 378bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @stable ICU 3.0 379bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert */ 380bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert public final static int FIELD_COUNT = 30; // must == DateFormatSymbols.patternChars.length() 381bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert 382bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert /** 383bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * Formats a time object into a time string. Examples of time objects 384bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * are a time value expressed in milliseconds and a Date object. 385bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @param obj must be a Number or a Date or a Calendar. 386bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @param toAppendTo the string buffer for the returning time string. 387bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @return the formatted time string. 388bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @param fieldPosition keeps track of the position of the field 389bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * within the returned string. 390bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * On input: an alignment field, 391bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * if desired. On output: the offsets of the alignment field. For 392bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * example, given a time text "1996.07.10 AD at 15:08:56 PDT", 393bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * if the given fieldPosition is DateFormat.YEAR_FIELD, the 394bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * begin index and end index of fieldPosition will be set to 395bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * 0 and 4, respectively. 396bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * Notice that if the same time field appears 397bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * more than once in a pattern, the fieldPosition will be set for the first 398bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * occurrence of that time field. For instance, formatting a Date to 399bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * the time string "1 PM PDT (Pacific Daylight Time)" using the pattern 400bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * "h a z (zzzz)" and the alignment field DateFormat.TIMEZONE_FIELD, 401bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * the begin index and end index of fieldPosition will be set to 402bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * 5 and 8, respectively, for the first occurrence of the timezone 403bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * pattern character 'z'. 404bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @see java.text.Format 405bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @stable ICU 2.0 406bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert */ 407bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert public final StringBuffer format(Object obj, StringBuffer toAppendTo, 408bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert FieldPosition fieldPosition) 409bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert { 410bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert if (obj instanceof Calendar) { 411bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert return format((Calendar)obj, toAppendTo, fieldPosition); 412bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert } else if (obj instanceof Date) { 413bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert return format((Date)obj, toAppendTo, fieldPosition); 414bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert } else if (obj instanceof Number) { 415bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert return format(new Date(((Number)obj).longValue()), toAppendTo, fieldPosition ); 416bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert } 417bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert 418bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert throw new IllegalArgumentException("Cannot format given Object (" + 419bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert obj.getClass().getName() + ") as a Date"); 420bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert } 421bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert 422bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert /** 423bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * Formats a date into a date/time string. 424bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @param cal a Calendar set to the date and time to be formatted 425bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * into a date/time string. When the calendar type is different from 426bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * the internal calendar held by this DateFormat instance, the date 427bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * and the time zone will be inherited from the input calendar, but 428bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * other calendar field values will be calculated by the internal calendar. 429bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @param toAppendTo the string buffer for the returning date/time string. 430bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @param fieldPosition keeps track of the position of the field 431bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * within the returned string. 432bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * On input: an alignment field, 433bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * if desired. On output: the offsets of the alignment field. For 434bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * example, given a time text "1996.07.10 AD at 15:08:56 PDT", 435bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * if the given fieldPosition is DateFormat.YEAR_FIELD, the 436bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * begin index and end index of fieldPosition will be set to 437bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * 0 and 4, respectively. 438bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * Notice that if the same time field appears 439bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * more than once in a pattern, the fieldPosition will be set for the first 440bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * occurrence of that time field. For instance, formatting a Date to 441bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * the time string "1 PM PDT (Pacific Daylight Time)" using the pattern 442bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * "h a z (zzzz)" and the alignment field DateFormat.TIMEZONE_FIELD, 443bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * the begin index and end index of fieldPosition will be set to 444bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * 5 and 8, respectively, for the first occurrence of the timezone 445bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * pattern character 'z'. 446bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @return the formatted date/time string. 447bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @stable ICU 2.0 448bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert */ 449bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert public StringBuffer format(Calendar cal, StringBuffer toAppendTo, 450bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert FieldPosition fieldPosition) { 451bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert return format(cal.getTime(), toAppendTo, fieldPosition); 452bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert } 453bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert 454bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert /** 455bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * Formats a Date into a date/time string. 456bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @param date a Date to be formatted into a date/time string. 457bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @param toAppendTo the string buffer for the returning date/time string. 458bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @param fieldPosition keeps track of the position of the field 459bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * within the returned string. 460bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * On input: an alignment field, 461bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * if desired. On output: the offsets of the alignment field. For 462bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * example, given a time text "1996.07.10 AD at 15:08:56 PDT", 463bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * if the given fieldPosition is DateFormat.YEAR_FIELD, the 464bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * begin index and end index of fieldPosition will be set to 465bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * 0 and 4, respectively. 466bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * Notice that if the same time field appears 467bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * more than once in a pattern, the fieldPosition will be set for the first 468bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * occurrence of that time field. For instance, formatting a Date to 469bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * the time string "1 PM PDT (Pacific Daylight Time)" using the pattern 470bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * "h a z (zzzz)" and the alignment field DateFormat.TIMEZONE_FIELD, 471bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * the begin index and end index of fieldPosition will be set to 472bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * 5 and 8, respectively, for the first occurrence of the timezone 473bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * pattern character 'z'. 474bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @return the formatted date/time string. 475bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @stable ICU 2.0 476bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert */ 477bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert public StringBuffer format(Date date, StringBuffer toAppendTo, 478bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert FieldPosition fieldPosition) { 479bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert FieldPosition jdkPos = toJDKFieldPosition(fieldPosition); 480bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert StringBuffer buf = dateFormat.format(date, toAppendTo, jdkPos); 481bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert if (jdkPos != null) { 482bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert fieldPosition.setBeginIndex(jdkPos.getBeginIndex()); 483bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert fieldPosition.setEndIndex(jdkPos.getEndIndex()); 484bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert } 485bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert return buf; 486bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert } 487bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert 488bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert /** 489bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * Formats a Date into a date/time string. 490bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @param date the time value to be formatted into a time string. 491bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @return the formatted time string. 492bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @stable ICU 2.0 493bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert */ 494bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert public final String format(Date date) 495bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert { 496bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert return dateFormat.format(date); 497bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert } 498bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert 499bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert /** 500bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * Parses a date/time string. 501bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * 502bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @param text The date/time string to be parsed 503bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * 504bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @return A Date, or null if the input could not be parsed 505bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * 506bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @exception ParseException If the given string cannot be parsed as a date. 507bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * 508bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @see #parse(String, ParsePosition) 509bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @stable ICU 2.0 510bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert */ 511bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert public Date parse(String text) throws ParseException 512bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert { 513bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert return dateFormat.parse(text); 514bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert } 515bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert 516bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert /** 517bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * Parses a date/time string according to the given parse position. 518bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * For example, a time text "07/10/96 4:5 PM, PDT" will be parsed 519bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * into a Calendar that is equivalent to Date(837039928046). The 520bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * caller should clear the calendar before calling this method, 521bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * unless existing field information is to be kept. 522bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * 523bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * <p> By default, parsing is lenient: If the input is not in the form used 524bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * by this object's format method but can still be parsed as a date, then 525bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * the parse succeeds. Clients may insist on strict adherence to the 526bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * format by calling setLenient(false). 527bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * 528bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @see #setLenient(boolean) 529bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * 530bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @param text The date/time string to be parsed 531bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * 532bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @param cal The calendar into which parsed data will be stored. 533bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * In general, this should be cleared before calling this 534bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * method. If this parse fails, the calendar may still 535bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * have been modified. When the calendar type is different 536bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * from the internal calendar held by this DateFormat 537bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * instance, calendar field values will be parsed based 538bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * on the internal calendar initialized with the time and 539bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * the time zone taken from this calendar, then the 540bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * parse result (time in milliseconds and time zone) will 541bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * be set back to this calendar. 542bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * 543bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @param pos On input, the position at which to start parsing; on 544bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * output, the position at which parsing terminated, or the 545bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * start position if the parse failed. 546bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @stable ICU 2.0 547bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert */ 548bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert public void parse(String text, Calendar cal, ParsePosition pos) { 549bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert Date result = dateFormat.parse(text, pos); 550bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert cal.setTime(result); 551bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert } 552bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert 553bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert /** 554bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * Parses a date/time string according to the given parse position. For 555bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * example, a time text "07/10/96 4:5 PM, PDT" will be parsed into a Date 556bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * that is equivalent to Date(837039928046). 557bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * 558bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * <p> By default, parsing is lenient: If the input is not in the form used 559bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * by this object's format method but can still be parsed as a date, then 560bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * the parse succeeds. Clients may insist on strict adherence to the 561bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * format by calling setLenient(false). 562bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * 563bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @see #setLenient(boolean) 564bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * 565bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @param text The date/time string to be parsed 566bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * 567bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @param pos On input, the position at which to start parsing; on 568bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * output, the position at which parsing terminated, or the 569bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * start position if the parse failed. 570bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * 571bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @return A Date, or null if the input could not be parsed 572bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @stable ICU 2.0 573bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert */ 574bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert public Date parse(String text, ParsePosition pos) { 575bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert return dateFormat.parse(text, pos); 576bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert } 577bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert 578bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert /** 579bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * Parses a date/time string into an Object. This convenience method simply 580bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * calls parse(String, ParsePosition). 581bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * 582bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @see #parse(String, ParsePosition) 583bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @stable ICU 2.0 584bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert */ 585bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert public Object parseObject (String source, ParsePosition pos) 586bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert { 587bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert return parse(source, pos); 588bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert } 589bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert 590bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert /** 591bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * {@icu} Constant for empty style pattern. 592bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @stable ICU 3.8 593bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert */ 594bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert public static final int NONE = -1; 595bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert 596bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert /** 597bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * Constant for full style pattern. 598bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @stable ICU 2.0 599bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert */ 600bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert public static final int FULL = 0; 601bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert 602bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert /** 603bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * Constant for long style pattern. 604bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @stable ICU 2.0 605bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert */ 606bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert public static final int LONG = 1; 607bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert 608bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert /** 609bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * Constant for medium style pattern. 610bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @stable ICU 2.0 611bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert */ 612bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert public static final int MEDIUM = 2; 613bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert 614bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert /** 615bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * Constant for short style pattern. 616bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @stable ICU 2.0 617bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert */ 618bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert public static final int SHORT = 3; 619bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert 620bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert /** 621bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * Constant for default style pattern. Its value is MEDIUM. 622bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @stable ICU 2.0 623bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert */ 624bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert public static final int DEFAULT = MEDIUM; 625bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert 626bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert /** 627bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * {@icu} Constant for relative style mask. 628bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @stable ICU 3.8 629bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert */ 630bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert public static final int RELATIVE = (1 << 7); 631bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert 632bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert /** 633bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * {@icu} Constant for relative full style pattern. 634bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @stable ICU 3.8 635bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert */ 636bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert public static final int RELATIVE_FULL = RELATIVE | FULL; 637bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert 638bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert /** 639bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * {@icu} Constant for relative style pattern. 640bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @stable ICU 3.8 641bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert */ 642bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert public static final int RELATIVE_LONG = RELATIVE | LONG; 643bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert 644bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert /** 645bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * {@icu} Constant for relative style pattern. 646bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @stable ICU 3.8 647bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert */ 648bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert public static final int RELATIVE_MEDIUM = RELATIVE | MEDIUM; 649bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert 650bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert /** 651bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * {@icu} Constant for relative style pattern. 652bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @stable ICU 3.8 653bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert */ 654bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert public static final int RELATIVE_SHORT = RELATIVE | SHORT; 655bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert 656bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert /** 657bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * {@icu} Constant for relative default style pattern. 658bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @stable ICU 3.8 659bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert */ 660bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert public static final int RELATIVE_DEFAULT = RELATIVE | DEFAULT; 661bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert 662bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert /* 663bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * DATES 664bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert */ 665bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert 666bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert /** 667bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * {@icu} Constant for date skeleton with year. 668bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @stable ICU 4.0 669bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert */ 670bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert public static final String YEAR = "y"; 671bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert 672bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert /** 673bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * {@icu} Constant for date skeleton with quarter. 674bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @draft ICU 50 675bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @provisional This API might change or be removed in a future release. 676bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert */ 677bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert public static final String QUARTER = "QQQQ"; 678bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert 679bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert /** 680bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * {@icu} Constant for date skeleton with abbreviated quarter. 681bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @draft ICU 50 682bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @provisional This API might change or be removed in a future release. 683bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert */ 684bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert public static final String ABBR_QUARTER = "QQQ"; 685bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert 686bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert /** 687bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * {@icu} Constant for date skeleton with year and quarter. 688bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @stable ICU 4.0 689bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert */ 690bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert public static final String YEAR_QUARTER = "yQQQQ"; 691bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert 692bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert /** 693bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * {@icu} Constant for date skeleton with year and abbreviated quarter. 694bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @stable ICU 4.0 695bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert */ 696bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert public static final String YEAR_ABBR_QUARTER = "yQQQ"; 697bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert 698bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert /** 699bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * {@icu} Constant for date skeleton with month. 700bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @stable ICU 4.0 701bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert */ 702bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert public static final String MONTH = "MMMM"; 703bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert 704bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert /** 705bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * {@icu} Constant for date skeleton with abbreviated month. 706bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @stable ICU 4.0 707bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert */ 708bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert public static final String ABBR_MONTH = "MMM"; 709bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert 710bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert /** 711bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * {@icu} Constant for date skeleton with numeric month. 712bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @stable ICU 4.0 713bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert */ 714bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert public static final String NUM_MONTH = "M"; 715bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert 716bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert /** 717bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * {@icu} Constant for date skeleton with year and month. 718bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @stable ICU 4.0 719bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert */ 720bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert public static final String YEAR_MONTH = "yMMMM"; 721bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert 722bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert /** 723bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * {@icu} Constant for date skeleton with year and abbreviated month. 724bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @stable ICU 4.0 725bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert */ 726bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert public static final String YEAR_ABBR_MONTH = "yMMM"; 727bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert 728bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert /** 729bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * {@icu} Constant for date skeleton with year and numeric month. 730bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @stable ICU 4.0 731bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert */ 732bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert public static final String YEAR_NUM_MONTH = "yM"; 733bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert 734bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert /** 735bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * {@icu} Constant for date skeleton with day. 736bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @stable ICU 4.0 737bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert */ 738bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert public static final String DAY = "d"; 739bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert 740bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert /** 741bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * {@icu} Constant for date skeleton with year, month, and day. 742bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * Used in combinations date + time, date + time + zone, or time + zone. 743bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @stable ICU 4.0 744bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert */ 745bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert public static final String YEAR_MONTH_DAY = "yMMMMd"; 746bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert 747bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert /** 748bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * {@icu} Constant for date skeleton with year, abbreviated month, and day. 749bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * Used in combinations date + time, date + time + zone, or time + zone. 750bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @stable ICU 4.0 751bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert */ 752bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert public static final String YEAR_ABBR_MONTH_DAY = "yMMMd"; 753bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert 754bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert /** 755bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * {@icu} Constant for date skeleton with year, numeric month, and day. 756bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * Used in combinations date + time, date + time + zone, or time + zone. 757bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @stable ICU 4.0 758bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert */ 759bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert public static final String YEAR_NUM_MONTH_DAY = "yMd"; 760bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert 761bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert /** 762bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * {@icu} Constant for date skeleton with weekday. 763bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @draft ICU 50 764bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @provisional This API might change or be removed in a future release. 765bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert */ 766bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert public static final String WEEKDAY = "EEEE"; 767bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert 768bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert /** 769bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * {@icu} Constant for date skeleton with abbreviated weekday. 770bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @draft ICU 50 771bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @provisional This API might change or be removed in a future release. 772bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert */ 773bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert public static final String ABBR_WEEKDAY = "E"; 774bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert 775bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert /** 776bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * {@icu} Constant for date skeleton with year, month, weekday, and day. 777bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * Used in combinations date + time, date + time + zone, or time + zone. 778bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @stable ICU 4.0 779bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert */ 780bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert public static final String YEAR_MONTH_WEEKDAY_DAY = "yMMMMEEEEd"; 781bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert 782bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert /** 783bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * {@icu} Constant for date skeleton with year, abbreviated month, weekday, and day. 784bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * Used in combinations date + time, date + time + zone, or time + zone. 785bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @stable ICU 4.0 786bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert */ 787bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert public static final String YEAR_ABBR_MONTH_WEEKDAY_DAY = "yMMMEd"; 788bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert 789bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert /** 790bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * {@icu} Constant for date skeleton with year, numeric month, weekday, and day. 791bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * Used in combinations date + time, date + time + zone, or time + zone. 792bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @stable ICU 4.0 793bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert */ 794bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert public static final String YEAR_NUM_MONTH_WEEKDAY_DAY = "yMEd"; 795bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert 796bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert /** 797bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * {@icu} Constant for date skeleton with long month and day. 798bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * Used in combinations date + time, date + time + zone, or time + zone. 799bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @stable ICU 4.0 800bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert */ 801bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert public static final String MONTH_DAY = "MMMMd"; 802bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert 803bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert /** 804bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * {@icu} Constant for date skeleton with abbreviated month and day. 805bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * Used in combinations date + time, date + time + zone, or time + zone. 806bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @stable ICU 4.0 807bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert */ 808bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert public static final String ABBR_MONTH_DAY = "MMMd"; 809bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert 810bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert /** 811bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * {@icu} Constant for date skeleton with numeric month and day. 812bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * Used in combinations date + time, date + time + zone, or time + zone. 813bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @stable ICU 4.0 814bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert */ 815bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert public static final String NUM_MONTH_DAY = "Md"; 816bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert 817bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert /** 818bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * {@icu} Constant for date skeleton with month, weekday, and day. 819bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * Used in combinations date + time, date + time + zone, or time + zone. 820bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @stable ICU 4.0 821bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert */ 822bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert public static final String MONTH_WEEKDAY_DAY = "MMMMEEEEd"; 823bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert 824bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert /** 825bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * {@icu} Constant for date skeleton with abbreviated month, weekday, and day. 826bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * Used in combinations date + time, date + time + zone, or time + zone. 827bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @stable ICU 4.0 828bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert */ 829bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert public static final String ABBR_MONTH_WEEKDAY_DAY = "MMMEd"; 830bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert 831bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert /** 832bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * {@icu} Constant for date skeleton with numeric month, weekday, and day. 833bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * Used in combinations date + time, date + time + zone, or time + zone. 834bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @stable ICU 4.0 835bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert */ 836bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert public static final String NUM_MONTH_WEEKDAY_DAY = "MEd"; 837bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert 838bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert /* 839bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * TIMES 840bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert */ 841bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert 842bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert /** 843bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * {@icu} Constant for date skeleton with hour, with the locale's preferred hour format (12 or 24). 844bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @stable ICU 4.0 845bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert */ 846bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert public static final String HOUR = "j"; 847bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert 848bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert /** 849bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * {@icu} Constant for date skeleton with hour in 24-hour presentation. 850bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @draft ICU 50 851bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @provisional This API might change or be removed in a future release. 852bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert */ 853bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert public static final String HOUR24 = "H"; 854bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert 855bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert /** 856bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * {@icu} Constant for date skeleton with minute. 857bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @draft ICU 50 858bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @provisional This API might change or be removed in a future release. 859bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert */ 860bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert public static final String MINUTE = "m"; 861bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert 862bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert /** 863bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * {@icu} Constant for date skeleton with hour and minute, with the locale's preferred hour format (12 or 24). 864bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * Used in combinations date + time, date + time + zone, or time + zone. 865bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @stable ICU 4.0 866bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert */ 867bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert public static final String HOUR_MINUTE = "jm"; 868bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert 869bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert /** 870bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * {@icu} Constant for date skeleton with hour and minute in 24-hour presentation. 871bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * Used in combinations date + time, date + time + zone, or time + zone. 872bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @stable ICU 4.0 873bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert */ 874bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert public static final String HOUR24_MINUTE = "Hm"; 875bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert 876bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert /** 877bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * {@icu} Constant for date skeleton with second. 878bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @draft ICU 50 879bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @provisional This API might change or be removed in a future release. 880bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert */ 881bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert public static final String SECOND = "s"; 882bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert 883bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert /** 884bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * {@icu} Constant for date skeleton with hour, minute, and second, 885bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * with the locale's preferred hour format (12 or 24). 886bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * Used in combinations date + time, date + time + zone, or time + zone. 887bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @stable ICU 4.0 888bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert */ 889bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert public static final String HOUR_MINUTE_SECOND = "jms"; 890bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert 891bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert /** 892bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * {@icu} Constant for date skeleton with hour, minute, and second in 893bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * 24-hour presentation. 894bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * Used in combinations date + time, date + time + zone, or time + zone. 895bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @stable ICU 4.0 896bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert */ 897bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert public static final String HOUR24_MINUTE_SECOND = "Hms"; 898bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert 899bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert /** 900bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * {@icu} Constant for date skeleton with minute and second. 901bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * Used in combinations date + time, date + time + zone, or time + zone. 902bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @stable ICU 4.0 903bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert */ 904bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert public static final String MINUTE_SECOND = "ms"; 905bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert 906bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert /* 907bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * TIMEZONES 908bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert */ 909bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert 910bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert /** 911bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * {@icu} Constant for <i>generic location format</i>, such as Los Angeles Time; 912bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * used in combinations date + time + zone, or time + zone. 913bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @see <a href="http://unicode.org/reports/tr35/#Date_Format_Patterns">LDML Date Format Patterns</a> 914bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @see <a href="http://unicode.org/reports/tr35/#Time_Zone_Fallback">LDML Time Zone Fallback</a> 915bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @draft ICU 50 916bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @provisional This API might change or be removed in a future release. 917bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert */ 918bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert public static final String LOCATION_TZ = "VVVV"; 919bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert 920bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert /** 921bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * {@icu} Constant for <i>generic non-location format</i>, such as Pacific Time; 922bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * used in combinations date + time + zone, or time + zone. 923bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @see <a href="http://unicode.org/reports/tr35/#Date_Format_Patterns">LDML Date Format Patterns</a> 924bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @see <a href="http://unicode.org/reports/tr35/#Time_Zone_Fallback">LDML Time Zone Fallback</a> 925bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @draft ICU 50 926bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @provisional This API might change or be removed in a future release. 927bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert */ 928bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert public static final String GENERIC_TZ = "vvvv"; 929bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert 930bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert /** 931bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * {@icu} Constant for <i>generic non-location format</i>, abbreviated if possible, such as PT; 932bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * used in combinations date + time + zone, or time + zone. 933bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @see <a href="http://unicode.org/reports/tr35/#Date_Format_Patterns">LDML Date Format Patterns</a> 934bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @see <a href="http://unicode.org/reports/tr35/#Time_Zone_Fallback">LDML Time Zone Fallback</a> 935bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @draft ICU 50 936bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @provisional This API might change or be removed in a future release. 937bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert */ 938bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert public static final String ABBR_GENERIC_TZ = "v"; 939bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert 940bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert /** 941bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * {@icu} Constant for <i>specific non-location format</i>, such as Pacific Daylight Time; 942bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * used in combinations date + time + zone, or time + zone. 943bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @see <a href="http://unicode.org/reports/tr35/#Date_Format_Patterns">LDML Date Format Patterns</a> 944bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @see <a href="http://unicode.org/reports/tr35/#Time_Zone_Fallback">LDML Time Zone Fallback</a> 945bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @draft ICU 50 946bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @provisional This API might change or be removed in a future release. 947bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert */ 948bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert public static final String SPECIFIC_TZ = "zzzz"; 949bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert 950bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert /** 951bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * {@icu} Constant for <i>specific non-location format</i>, abbreviated if possible, such as PDT; 952bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * used in combinations date + time + zone, or time + zone. 953bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @see <a href="http://unicode.org/reports/tr35/#Date_Format_Patterns">LDML Date Format Patterns</a> 954bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @see <a href="http://unicode.org/reports/tr35/#Time_Zone_Fallback">LDML Time Zone Fallback</a> 955bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @draft ICU 50 956bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @provisional This API might change or be removed in a future release. 957bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert */ 958bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert public static final String ABBR_SPECIFIC_TZ = "z"; 959bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert 960bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert /** 961bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * {@icu} Constant for <i>localized GMT/UTC format</i>, such as GMT+8:00 or HPG-8:00; 962bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * used in combinations date + time + zone, or time + zone. 963bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @see <a href="http://unicode.org/reports/tr35/#Date_Format_Patterns">LDML Date Format Patterns</a> 964bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @see <a href="http://unicode.org/reports/tr35/#Time_Zone_Fallback">LDML Time Zone Fallback</a> 965bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @draft ICU 50 966bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @provisional This API might change or be removed in a future release. 967bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert */ 968bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert public static final String ABBR_UTC_TZ = "ZZZZ"; 969bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert 970bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert /* 971bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * deprecated skeleton constants 972bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert */ 973bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert 974bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert /** 975bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * {@icu} Constant for date skeleton with standalone month. 976bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @deprecated ICU 50 Use {@link #MONTH} instead. 977bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert */ 978bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert public static final String STANDALONE_MONTH = "LLLL"; 979bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert 980bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert /** 981bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * {@icu} Constant for date skeleton with standalone abbreviated month. 982bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @deprecated ICU 50 Use {@link #ABBR_MONTH} instead. 983bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert */ 984bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert public static final String ABBR_STANDALONE_MONTH = "LLL"; 985bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert 986bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert /** 987bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * {@icu} Constant for date skeleton with hour, minute, and generic timezone. 988bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @deprecated ICU 50 Use instead {@link #HOUR_MINUTE}+{@link #ABBR_GENERIC_TZ} or some other timezone presentation. 989bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert */ 990bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert public static final String HOUR_MINUTE_GENERIC_TZ = "jmv"; 991bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert 992bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert /** 993bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * {@icu} Constant for date skeleton with hour, minute, and timezone. 994bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @deprecated ICU 50 Use instead {@link #HOUR_MINUTE}+{@link #ABBR_SPECIFIC_TZ} or some other timezone presentation. 995bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert */ 996bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert public static final String HOUR_MINUTE_TZ = "jmz"; 997bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert 998bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert /** 999bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * {@icu} Constant for date skeleton with hour and generic timezone. 1000bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @deprecated ICU 50 Use instead {@link #HOUR}+{@link #ABBR_GENERIC_TZ} or some other timezone presentation. 1001bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert */ 1002bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert public static final String HOUR_GENERIC_TZ = "jv"; 1003bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert 1004bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert /** 1005bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * {@icu} Constant for date skeleton with hour and timezone. 1006bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @deprecated ICU 50 Use instead {@link #HOUR}+{@link #ABBR_SPECIFIC_TZ} or some other timezone presentation. 1007bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert */ 1008bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert public static final String HOUR_TZ = "jz"; 1009bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert /** 1010bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * Gets the time formatter with the default formatting style 1011bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * for the default locale. 1012bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @return a time formatter. 1013bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @stable ICU 2.0 1014bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert */ 1015bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert public final static DateFormat getTimeInstance() 1016bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert { 1017bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert return new DateFormat(java.text.DateFormat.getTimeInstance( 1018bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert java.text.DateFormat.DEFAULT, 1019bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert ULocale.getDefault(Category.FORMAT).toLocale())); 1020bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert } 1021bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert 1022bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert /** 1023bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * Returns the time formatter with the given formatting style 1024bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * for the default locale. 1025bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @param style the given formatting style. For example, 1026bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * SHORT for "h:mm a" in the US locale. 1027bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @return a time formatter. 1028bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @stable ICU 2.0 1029bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert */ 1030bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert public final static DateFormat getTimeInstance(int style) 1031bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert { 1032bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert return new DateFormat(java.text.DateFormat.getTimeInstance( 1033bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert getJDKFormatStyle(style), 1034bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert ULocale.getDefault(Category.FORMAT).toLocale())); 1035bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert } 1036bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert 1037bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert /** 1038bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * Returns the time formatter with the given formatting style 1039bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * for the given locale. 1040bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @param style the given formatting style. For example, 1041bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * SHORT for "h:mm a" in the US locale. 1042bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @param aLocale the given locale. 1043bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @return a time formatter. 1044bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @stable ICU 2.0 1045bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert */ 1046bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert public final static DateFormat getTimeInstance(int style, 1047bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert Locale aLocale) 1048bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert { 1049bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert return new DateFormat(java.text.DateFormat.getTimeInstance(getJDKFormatStyle(style), aLocale)); 1050bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert } 1051bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert 1052bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert /** 1053bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * Returns the time formatter with the given formatting style 1054bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * for the given locale. 1055bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @param style the given formatting style. For example, 1056bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * SHORT for "h:mm a" in the US locale. 1057bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @param locale the given ulocale. 1058bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @return a time formatter. 1059bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @stable ICU 3.2 1060bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert */ 1061bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert public final static DateFormat getTimeInstance(int style, 1062bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert ULocale locale) 1063bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert { 1064bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert return new DateFormat(java.text.DateFormat.getTimeInstance(getJDKFormatStyle(style), locale.toLocale())); 1065bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert } 1066bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert 1067bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert /** 1068bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * Returns the date formatter with the default formatting style 1069bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * for the default locale. 1070bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @return a date formatter. 1071bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @stable ICU 2.0 1072bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert */ 1073bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert public final static DateFormat getDateInstance() 1074bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert { 1075bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert return new DateFormat(java.text.DateFormat.getDateInstance( 1076bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert java.text.DateFormat.DEFAULT, 1077bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert ULocale.getDefault(Category.FORMAT).toLocale())); 1078bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert } 1079bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert 1080bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert /** 1081bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * Returns the date formatter with the given formatting style 1082bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * for the default locale. 1083bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @param style the given formatting style. For example, 1084bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * SHORT for "M/d/yy" in the US locale. 1085bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @return a date formatter. 1086bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @stable ICU 2.0 1087bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert */ 1088bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert public final static DateFormat getDateInstance(int style) 1089bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert { 1090bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert return new DateFormat(java.text.DateFormat.getDateInstance( 1091bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert getJDKFormatStyle(style), 1092bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert ULocale.getDefault(Category.FORMAT).toLocale())); 1093bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert } 1094bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert 1095bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert /** 1096bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * Returns the date formatter with the given formatting style 1097bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * for the given locale. 1098bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @param style the given formatting style. For example, 1099bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * SHORT for "M/d/yy" in the US locale. 1100bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @param aLocale the given locale. 1101bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @return a date formatter. 1102bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @stable ICU 2.0 1103bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert */ 1104bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert public final static DateFormat getDateInstance(int style, 1105bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert Locale aLocale) 1106bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert { 1107bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert return new DateFormat(java.text.DateFormat.getDateInstance(getJDKFormatStyle(style), aLocale)); 1108bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert } 1109bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert 1110bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert /** 1111bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * Returns the date formatter with the given formatting style 1112bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * for the given locale. 1113bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @param style the given formatting style. For example, 1114bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * SHORT for "M/d/yy" in the US locale. 1115bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @param locale the given ulocale. 1116bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @return a date formatter. 1117bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @stable ICU 3.2 1118bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert */ 1119bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert public final static DateFormat getDateInstance(int style, 1120bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert ULocale locale) 1121bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert { 1122bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert return new DateFormat(java.text.DateFormat.getDateInstance(getJDKFormatStyle(style), locale.toLocale())); 1123bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert } 1124bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert 1125bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert /** 1126bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * Returns the date/time formatter with the default formatting style 1127bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * for the default locale. 1128bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @return a date/time formatter. 1129bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @stable ICU 2.0 1130bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert */ 1131bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert public final static DateFormat getDateTimeInstance() 1132bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert { 1133bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert return new DateFormat(java.text.DateFormat.getDateTimeInstance( 1134bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert java.text.DateFormat.DEFAULT, 1135bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert java.text.DateFormat.DEFAULT, 1136bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert ULocale.getDefault(Category.FORMAT).toLocale())); 1137bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert } 1138bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert 1139bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert /** 1140bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * Returns the date/time formatter with the given date and time 1141bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * formatting styles for the default locale. 1142bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @param dateStyle the given date formatting style. For example, 1143bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * SHORT for "M/d/yy" in the US locale. 1144bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @param timeStyle the given time formatting style. For example, 1145bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * SHORT for "h:mm a" in the US locale. 1146bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @return a date/time formatter. 1147bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @stable ICU 2.0 1148bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert */ 1149bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert public final static DateFormat getDateTimeInstance(int dateStyle, 1150bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert int timeStyle) 1151bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert { 1152bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert if (dateStyle != NONE) { 1153bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert if (timeStyle != NONE) { 1154bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert return new DateFormat(java.text.DateFormat.getDateTimeInstance( 1155bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert getJDKFormatStyle(dateStyle), 1156bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert getJDKFormatStyle(timeStyle), 1157bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert ULocale.getDefault(Category.FORMAT).toLocale())); 1158bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert } else { 1159bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert return new DateFormat(java.text.DateFormat.getDateInstance( 1160bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert getJDKFormatStyle(dateStyle), 1161bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert ULocale.getDefault(Category.FORMAT).toLocale())); 1162bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert } 1163bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert } 1164bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert if (timeStyle != NONE) { 1165bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert return new DateFormat(java.text.DateFormat.getTimeInstance( 1166bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert getJDKFormatStyle(timeStyle), 1167bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert ULocale.getDefault(Category.FORMAT).toLocale())); 1168bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert } 1169bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert return null; 1170bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert } 1171bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert 1172bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert /** 1173bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * Returns the date/time formatter with the given formatting styles 1174bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * for the given locale. 1175bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @param dateStyle the given date formatting style. 1176bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @param timeStyle the given time formatting style. 1177bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @param aLocale the given locale. 1178bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @return a date/time formatter. 1179bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @stable ICU 2.0 1180bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert */ 1181bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert public final static DateFormat getDateTimeInstance( 1182bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert int dateStyle, int timeStyle, Locale aLocale) 1183bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert { 1184bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert if (dateStyle != NONE) { 1185bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert if (timeStyle != NONE) { 1186bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert return new DateFormat(java.text.DateFormat.getDateTimeInstance(getJDKFormatStyle(dateStyle), getJDKFormatStyle(timeStyle), aLocale)); 1187bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert } else { 1188bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert return new DateFormat(java.text.DateFormat.getDateInstance(getJDKFormatStyle(dateStyle), aLocale)); 1189bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert } 1190bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert } 1191bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert if (timeStyle != NONE) { 1192bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert return new DateFormat(java.text.DateFormat.getTimeInstance(getJDKFormatStyle(timeStyle), aLocale)); 1193bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert } 1194bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert return null; 1195bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert } 1196bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert 1197bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert /** 1198bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * Returns the date/time formatter with the given formatting styles 1199bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * for the given locale. 1200bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @param dateStyle the given date formatting style. 1201bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @param timeStyle the given time formatting style. 1202bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @param locale the given ulocale. 1203bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @return a date/time formatter. 1204bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @stable ICU 3.2 1205bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert */ 1206bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert public final static DateFormat getDateTimeInstance( 1207bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert int dateStyle, int timeStyle, ULocale locale) 1208bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert { 1209bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert if (dateStyle != NONE) { 1210bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert if (timeStyle != NONE) { 1211bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert return new DateFormat(java.text.DateFormat.getDateTimeInstance(getJDKFormatStyle(dateStyle), getJDKFormatStyle(timeStyle), locale.toLocale())); 1212bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert } else { 1213bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert return new DateFormat(java.text.DateFormat.getDateInstance(getJDKFormatStyle(dateStyle), locale.toLocale())); 1214bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert } 1215bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert } 1216bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert if (timeStyle != NONE) { 1217bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert return new DateFormat(java.text.DateFormat.getTimeInstance(getJDKFormatStyle(timeStyle), locale.toLocale())); 1218bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert } 1219bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert return null; 1220bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert } 1221bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert 1222bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert /** 1223bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * Returns a default date/time formatter that uses the SHORT style for both the 1224bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * date and the time. 1225bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @stable ICU 2.0 1226bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert */ 1227bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert public final static DateFormat getInstance() { 1228bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert return new DateFormat(java.text.DateFormat.getDateTimeInstance( 1229bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert java.text.DateFormat.SHORT, 1230bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert java.text.DateFormat.SHORT, 1231bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert ULocale.getDefault(Category.FORMAT).toLocale())); 1232bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert } 1233bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert 1234bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert /** 1235bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * Returns the set of locales for which DateFormats are installed. 1236bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @return the set of locales for which DateFormats are installed. 1237bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @stable ICU 2.0 1238bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert */ 1239bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert public static Locale[] getAvailableLocales() 1240bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert { 1241bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert return java.text.DateFormat.getAvailableLocales(); 1242bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert } 1243bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert 1244bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert /** 1245bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * {@icu} Returns the set of locales for which DateFormats are installed. 1246bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @return the set of locales for which DateFormats are installed. 1247bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @draft ICU 3.2 (retain) 1248bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @provisional This API might change or be removed in a future release. 1249bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert */ 1250bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert public static ULocale[] getAvailableULocales() 1251bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert { 1252bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert if (availableULocales == null) { 1253bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert synchronized(DateFormat.class) { 1254bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert if (availableULocales == null) { 1255bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert Locale[] locales = java.text.DateFormat.getAvailableLocales(); 1256bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert availableULocales = new ULocale[locales.length]; 1257bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert for (int i = 0; i < locales.length; ++i) { 1258bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert availableULocales[i] = ULocale.forLocale(locales[i]); 1259bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert } 1260bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert } 1261bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert } 1262bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert } 1263bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert return availableULocales; 1264bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert } 1265bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert private static volatile ULocale[] availableULocales; 1266bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert 1267bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert /** 1268bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * Sets the calendar to be used by this date format. Initially, the default 1269bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * calendar for the specified or default locale is used. 1270bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @param newCalendar the new Calendar to be used by the date format 1271bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @stable ICU 2.0 1272bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert */ 1273bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert public void setCalendar(Calendar newCalendar) 1274bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert { 1275bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert dateFormat.setCalendar(newCalendar.calendar); 1276bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert } 1277bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert 1278bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert /** 1279bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * Returns the calendar associated with this date/time formatter. 1280bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @return the calendar associated with this date/time formatter. 1281bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @stable ICU 2.0 1282bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert */ 1283bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert public Calendar getCalendar() 1284bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert { 1285bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert return new Calendar(dateFormat.getCalendar()); 1286bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert } 1287bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert 1288bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert /** 1289bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * Sets the number formatter. 1290bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @param newNumberFormat the given new NumberFormat. 1291bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @stable ICU 2.0 1292bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert */ 1293bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert public void setNumberFormat(NumberFormat newNumberFormat) 1294bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert { 1295bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert dateFormat.setNumberFormat(newNumberFormat.numberFormat); 1296bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert } 1297bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert 1298bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert /** 1299bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * Returns the number formatter which this date/time formatter uses to 1300bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * format and parse a time. 1301bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @return the number formatter which this date/time formatter uses. 1302bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @stable ICU 2.0 1303bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert */ 1304bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert public NumberFormat getNumberFormat() 1305bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert { 1306bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert return new NumberFormat(dateFormat.getNumberFormat()); 1307bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert } 1308bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert 1309bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert /** 1310bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * Sets the time zone for the calendar of this DateFormat object. 1311bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @param zone the given new time zone. 1312bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @stable ICU 2.0 1313bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert */ 1314bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert public void setTimeZone(TimeZone zone) 1315bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert { 1316bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert dateFormat.setTimeZone(zone.timeZone); 1317bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert } 1318bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert 1319bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert /** 1320bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * Returns the time zone. 1321bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @return the time zone associated with the calendar of DateFormat. 1322bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @stable ICU 2.0 1323bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert */ 1324bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert public TimeZone getTimeZone() 1325bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert { 1326bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert return new TimeZone(dateFormat.getTimeZone()); 1327bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert } 1328bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert 1329bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert /** 1330bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * Specifies whether date/time parsing is to be lenient. With 1331bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * lenient parsing, the parser may use heuristics to interpret inputs that 1332bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * do not precisely match this object's format. With strict parsing, 1333bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * inputs must match this object's format. 1334bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @param lenient when true, parsing is lenient 1335bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @see com.ibm.icu.util.Calendar#setLenient 1336bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @stable ICU 2.0 1337bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert */ 1338bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert public void setLenient(boolean lenient) 1339bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert { 1340bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert dateFormat.setLenient(lenient); 1341bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert } 1342bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert 1343bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert /** 1344bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * Returns whether date/time parsing is lenient. 1345bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @stable ICU 2.0 1346bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert */ 1347bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert public boolean isLenient() 1348bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert { 1349bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert return dateFormat.isLenient(); 1350bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert } 1351bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert 1352bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert /** 1353bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * Overrides hashCode. 1354bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @stable ICU 2.0 1355bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert */ 1356bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert public int hashCode() { 1357bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert return dateFormat.hashCode(); 1358bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert } 1359bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert 1360bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert /** 1361bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * Overrides equals. 1362bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @stable ICU 2.0 1363bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert */ 1364bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert public boolean equals(Object obj) { 1365bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert try { 1366bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert return dateFormat.equals(((DateFormat)obj).dateFormat); 1367bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert } 1368bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert catch (Exception e) { 1369bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert return false; 1370bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert } 1371bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert } 1372bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert 1373bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert /** 1374bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * Overrides clone. 1375bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @stable ICU 2.0 1376bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert */ 1377bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert public Object clone() 1378bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert { 1379bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert return new DateFormat((java.text.DateFormat)dateFormat.clone()); 1380bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert } 1381bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert 1382bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert //------------------------------------------------------------------------- 1383bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert // Public static interface for creating custon DateFormats for different 1384bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert // types of Calendars. 1385bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert //------------------------------------------------------------------------- 1386bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert 1387bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert /** 1388bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * Creates a {@link DateFormat} object that can be used to format dates in 1389bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * the calendar system specified by <code>cal</code>. 1390bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * <p> 1391bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @param cal The calendar system for which a date format is desired. 1392bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * 1393bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @param dateStyle The type of date format desired. This can be 1394bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * {@link DateFormat#SHORT}, {@link DateFormat#MEDIUM}, 1395bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * etc. 1396bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * 1397bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @param locale The locale for which the date format is desired. 1398bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @stable ICU 2.0 1399bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert */ 1400bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert static final public DateFormat getDateInstance(Calendar cal, int dateStyle, Locale locale) 1401bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert { 1402bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert DateFormat df = getDateInstance(dateStyle, locale); 1403bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert df.setCalendar(cal); 1404bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert return df; 1405bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert } 1406bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert 1407bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert /** 1408bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * Creates a {@link DateFormat} object that can be used to format dates in 1409bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * the calendar system specified by <code>cal</code>. 1410bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * <p> 1411bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @param cal The calendar system for which a date format is desired. 1412bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * 1413bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @param dateStyle The type of date format desired. This can be 1414bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * {@link DateFormat#SHORT}, {@link DateFormat#MEDIUM}, 1415bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * etc. 1416bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * 1417bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @param locale The locale for which the date format is desired. 1418bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @stable ICU 3.2 1419bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert */ 1420bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert static final public DateFormat getDateInstance(Calendar cal, int dateStyle, ULocale locale) 1421bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert { 1422bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert DateFormat df = getDateInstance(dateStyle, locale); 1423bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert df.setCalendar(cal); 1424bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert return df; 1425bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert } 1426bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert 1427bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert /** 1428bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * Creates a {@link DateFormat} object that can be used to format times in 1429bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * the calendar system specified by <code>cal</code>. 1430bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * <p> 1431bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * <b>Note:</b> When this functionality is moved into the core JDK, this method 1432bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * will probably be replaced by a new overload of {@link DateFormat#getInstance}. 1433bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * <p> 1434bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @param cal The calendar system for which a time format is desired. 1435bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * 1436bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @param timeStyle The type of time format desired. This can be 1437bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * {@link DateFormat#SHORT}, {@link DateFormat#MEDIUM}, 1438bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * etc. 1439bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * 1440bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @param locale The locale for which the time format is desired. 1441bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * 1442bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @see DateFormat#getTimeInstance 1443bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @stable ICU 2.0 1444bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert */ 1445bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert static final public DateFormat getTimeInstance(Calendar cal, int timeStyle, Locale locale) 1446bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert { 1447bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert DateFormat df = getTimeInstance(timeStyle, locale); 1448bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert df.setCalendar(cal); 1449bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert return df; 1450bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert } 1451bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert 1452bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert /** 1453bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * Creates a {@link DateFormat} object that can be used to format times in 1454bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * the calendar system specified by <code>cal</code>. 1455bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * <p> 1456bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * <b>Note:</b> When this functionality is moved into the core JDK, this method 1457bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * will probably be replaced by a new overload of {@link DateFormat#getInstance}. 1458bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * <p> 1459bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @param cal The calendar system for which a time format is desired. 1460bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * 1461bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @param timeStyle The type of time format desired. This can be 1462bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * {@link DateFormat#SHORT}, {@link DateFormat#MEDIUM}, 1463bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * etc. 1464bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * 1465bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @param locale The locale for which the time format is desired. 1466bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * 1467bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @see DateFormat#getTimeInstance 1468bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @stable ICU 3.2 1469bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert */ 1470bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert static final public DateFormat getTimeInstance(Calendar cal, int timeStyle, ULocale locale) 1471bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert { 1472bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert DateFormat df = getTimeInstance(timeStyle, locale); 1473bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert df.setCalendar(cal); 1474bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert return df; 1475bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert } 1476bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert 1477bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert /** 1478bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * Creates a {@link DateFormat} object that can be used to format dates and times in 1479bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * the calendar system specified by <code>cal</code>. 1480bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * <p> 1481bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * <b>Note:</b> When this functionality is moved into the core JDK, this method 1482bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * will probably be replaced by a new overload of {@link DateFormat#getInstance}. 1483bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * <p> 1484bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @param cal The calendar system for which a date/time format is desired. 1485bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * 1486bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @param dateStyle The type of date format desired. This can be 1487bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * {@link DateFormat#SHORT}, {@link DateFormat#MEDIUM}, 1488bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * etc. 1489bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * 1490bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @param timeStyle The type of time format desired. This can be 1491bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * {@link DateFormat#SHORT}, {@link DateFormat#MEDIUM}, 1492bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * etc. 1493bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * 1494bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @param locale The locale for which the date/time format is desired. 1495bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * 1496bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @see DateFormat#getDateTimeInstance 1497bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @stable ICU 2.0 1498bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert */ 1499bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert static final public DateFormat getDateTimeInstance(Calendar cal, int dateStyle, 1500bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert int timeStyle, Locale locale) 1501bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert { 1502bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert DateFormat df = getDateTimeInstance(dateStyle, timeStyle, locale); 1503bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert df.setCalendar(cal); 1504bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert return df; 1505bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert } 1506bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert 1507bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert /** 1508bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * Creates a {@link DateFormat} object that can be used to format dates and times in 1509bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * the calendar system specified by <code>cal</code>. 1510bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * <p> 1511bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * <b>Note:</b> When this functionality is moved into the core JDK, this method 1512bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * will probably be replaced by a new overload of {@link DateFormat#getInstance}. 1513bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * <p> 1514bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @param cal The calendar system for which a date/time format is desired. 1515bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * 1516bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @param dateStyle The type of date format desired. This can be 1517bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * {@link DateFormat#SHORT}, {@link DateFormat#MEDIUM}, 1518bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * etc. 1519bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * 1520bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @param timeStyle The type of time format desired. This can be 1521bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * {@link DateFormat#SHORT}, {@link DateFormat#MEDIUM}, 1522bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * etc. 1523bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * 1524bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @param locale The locale for which the date/time format is desired. 1525bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * 1526bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @see DateFormat#getDateTimeInstance 1527bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @stable ICU 3.2 1528bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert */ 1529bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert static final public DateFormat getDateTimeInstance(Calendar cal, int dateStyle, 1530bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert int timeStyle, ULocale locale) 1531bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert { 1532bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert DateFormat df = getDateTimeInstance(dateStyle, timeStyle, locale); 1533bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert df.setCalendar(cal); 1534bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert return df; 1535bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert } 1536bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert 1537bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert /** 1538bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * Convenience overload. 1539bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @stable ICU 2.0 1540bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert */ 1541bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert static final public DateFormat getInstance(Calendar cal, Locale locale) { 1542bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert return getDateTimeInstance(cal, DateFormat.MEDIUM, DateFormat.SHORT, locale); 1543bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert } 1544bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert 1545bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert /** 1546bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * Convenience overload. 1547bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @stable ICU 3.2 1548bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @provisional This API might change or be removed in a future release. 1549bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert */ 1550bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert static final public DateFormat getInstance(Calendar cal, ULocale locale) { 1551bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert return getDateTimeInstance(cal, DateFormat.MEDIUM, DateFormat.SHORT, locale); 1552bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert } 1553bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert 1554bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert /** 1555bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * Convenience overload. 1556bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @stable ICU 2.0 1557bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert */ 1558bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert static final public DateFormat getInstance(Calendar cal) { 1559bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert return getInstance(cal, ULocale.getDefault(Category.FORMAT)); 1560bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert } 1561bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert 1562bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert /** 1563bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * Convenience overload. 1564bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @stable ICU 2.0 1565bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert */ 1566bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert static final public DateFormat getDateInstance(Calendar cal, int dateStyle) { 1567bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert return getDateInstance(cal, dateStyle, ULocale.getDefault(Category.FORMAT)); 1568bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert } 1569bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert 1570bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert /** 1571bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * Convenience overload. 1572bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @stable ICU 2.0 1573bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert */ 1574bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert static final public DateFormat getTimeInstance(Calendar cal, int timeStyle) { 1575bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert return getTimeInstance(cal, timeStyle, ULocale.getDefault(Category.FORMAT)); 1576bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert } 1577bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert 1578bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert /** 1579bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * Convenience overload. 1580bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @stable ICU 2.0 1581bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert */ 1582bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert static final public DateFormat getDateTimeInstance(Calendar cal, int dateStyle, int timeStyle) { 1583bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert return getDateTimeInstance(cal, dateStyle, timeStyle, ULocale.getDefault(Category.FORMAT)); 1584bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert } 1585bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert 1586bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert// /** 1587bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert// * {@icu} Convenience overload. 1588bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert// * @stable ICU 4.0 1589bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert// */ 1590bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert// public final static DateFormat getPatternInstance(String pattern) { 1591bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert// throw new UnsupportedOperationException("Method not supported by com.ibm.icu.base"); 1592bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert// } 1593bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert 1594bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert// /** 1595bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert// * {@icu} Convenience overload. 1596bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert// * @stable ICU 4.0 1597bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert// */ 1598bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert// public final static DateFormat getPatternInstance(String pattern, Locale locale) { 1599bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert// throw new UnsupportedOperationException("Method not supported by com.ibm.icu.base"); 1600bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert// } 1601bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert 1602bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert// /** 1603bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert// * {@icu} Returns a {@link DateFormat} object that can be used to format dates and times in 1604bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert// * the given locale. 1605bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert// * <p> 1606bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert// * <b>Note:</b> When this functionality is moved into the core JDK, this method 1607bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert// * will probably be replaced by a new overload of {@link DateFormat#getInstance}. 1608bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert// * <p> 1609bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert// * 1610bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert// * @param pattern The pattern that selects the fields to be formatted. (Uses the 1611bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert// * {@link DateTimePatternGenerator}.) This can be {@link DateFormat#ABBR_MONTH}, 1612bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert// * {@link DateFormat#MONTH_WEEKDAY_DAY}, etc. 1613bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert// * 1614bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert// * @param locale The locale for which the date/time format is desired. 1615bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert// * 1616bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert// * @stable ICU 4.0 1617bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert// */ 1618bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert// public final static DateFormat getPatternInstance(String pattern, ULocale locale) { 1619bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert// throw new UnsupportedOperationException("Method not supported by com.ibm.icu.base"); 1620bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert// } 1621bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert 1622bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert// /** 1623bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert// * {@icu} Convenience overload. 1624bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert// * @stable ICU 4.0 1625bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert// */ 1626bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert// public final static DateFormat getPatternInstance(Calendar cal, String pattern, Locale locale) { 1627bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert// throw new UnsupportedOperationException("Method not supported by com.ibm.icu.base"); 1628bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert// } 1629bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert 1630bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert// /** 1631bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert// * {@icu} Creates a {@link DateFormat} object that can be used to format dates and 1632bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert// * times in the calendar system specified by <code>cal</code>. 1633bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert// * 1634bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert// * <p><b>Note:</b> When this functionality is moved into the core JDK, this method 1635bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert// * will probably be replaced by a new overload of {@link DateFormat#getInstance}. 1636bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert// * 1637bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert// * @param cal The calendar system for which a date/time format is desired. 1638bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert// * 1639bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert// * @param pattern The pattern that selects the fields to be formatted. (Uses the 1640bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert// * {@link DateTimePatternGenerator}.) This can be 1641bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert// * {@link DateFormat#ABBR_MONTH}, {@link DateFormat#MONTH_WEEKDAY_DAY}, 1642bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert// * etc. 1643bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert// * 1644bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert// * @param locale The locale for which the date/time format is desired. 1645bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert// * 1646bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert// * @stable ICU 4.0 1647bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert// */ 1648bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert// public final static DateFormat getPatternInstance( 1649bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert// Calendar cal, String pattern, ULocale locale) { 1650bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert// throw new UnsupportedOperationException("Method not supported by com.ibm.icu.base"); 1651bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert// } 1652bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert 1653bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert /** 1654bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * The instances of this inner class are used as attribute keys and values 1655bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * in AttributedCharacterIterator that 1656bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * DateFormat.formatToCharacterIterator() method returns. 1657bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * 1658bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * <p>There is no public constructor to this class, the only instances are the 1659bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * constants defined here. 1660bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * <p> 1661bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @stable ICU 3.8 1662bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert */ 1663bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert public static class Field extends Format.Field { 1664bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert 1665bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert private static final long serialVersionUID = -3627456821000730829L; 1666bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert 1667bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert // Max number of calendar fields 1668bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert private static final int CAL_FIELD_COUNT; 1669bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert 1670bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert // Table for mapping calendar field number to DateFormat.Field 1671bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert private static final Field[] CAL_FIELDS; 1672bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert 1673bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert // Map for resolving DateFormat.Field by name 1674bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert private static final Map<String, Field> FIELD_NAME_MAP; 1675bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert 1676bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert static { 1677bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert Calendar cal = Calendar.getInstance(); 1678bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert CAL_FIELD_COUNT = cal.getFieldCount(); 1679bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert CAL_FIELDS = new Field[CAL_FIELD_COUNT]; 1680bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert FIELD_NAME_MAP = new HashMap<String, Field>(CAL_FIELD_COUNT); 1681bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert } 1682bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert 1683bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert // Java fields ------------------- 1684bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert 1685bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert /** 1686bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * Constant identifying the time of day indicator(am/pm). 1687bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @stable ICU 3.8 1688bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert */ 1689bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert public static final Field AM_PM = new Field("am pm", Calendar.AM_PM); 1690bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert 1691bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert /** 1692bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * Constant identifying the day of month field. 1693bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @stable ICU 3.8 1694bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert */ 1695bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert public static final Field DAY_OF_MONTH = new Field("day of month", Calendar.DAY_OF_MONTH); 1696bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert 1697bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert /** 1698bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * Constant identifying the day of week field. 1699bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @stable ICU 3.8 1700bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert */ 1701bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert public static final Field DAY_OF_WEEK = new Field("day of week", Calendar.DAY_OF_WEEK); 1702bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert 1703bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert /** 1704bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * Constant identifying the day of week in month field. 1705bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @stable ICU 3.8 1706bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert */ 1707bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert public static final Field DAY_OF_WEEK_IN_MONTH = 1708bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert new Field("day of week in month", Calendar.DAY_OF_WEEK_IN_MONTH); 1709bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert 1710bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert /** 1711bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * Constant identifying the day of year field. 1712bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @stable ICU 3.8 1713bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert */ 1714bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert public static final Field DAY_OF_YEAR = new Field("day of year", Calendar.DAY_OF_YEAR); 1715bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert 1716bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert /** 1717bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * Constant identifying the era field. 1718bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @stable ICU 3.8 1719bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert */ 1720bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert public static final Field ERA = new Field("era", Calendar.ERA); 1721bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert 1722bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert /** 1723bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * Constant identifying the hour(0-23) of day field. 1724bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @stable ICU 3.8 1725bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert */ 1726bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert public static final Field HOUR_OF_DAY0 = new Field("hour of day", Calendar.HOUR_OF_DAY); 1727bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert 1728bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert /** 1729bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * Constant identifying the hour(1-24) of day field. 1730bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @stable ICU 3.8 1731bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert */ 1732bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert public static final Field HOUR_OF_DAY1 = new Field("hour of day 1", -1); 1733bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert 1734bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert /** 1735bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * Constant identifying the hour(0-11) field. 1736bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @stable ICU 3.8 1737bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert */ 1738bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert public static final Field HOUR0 = new Field("hour", Calendar.HOUR); 1739bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert 1740bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert /** 1741bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * Constant identifying the hour(1-12) field. 1742bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @stable ICU 3.8 1743bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert */ 1744bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert public static final Field HOUR1 = new Field("hour 1", -1); 1745bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert 1746bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert /** 1747bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * Constant identifying the millisecond field. 1748bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @stable ICU 3.8 1749bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert */ 1750bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert public static final Field MILLISECOND = new Field("millisecond", Calendar.MILLISECOND); 1751bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert 1752bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert /** 1753bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * Constant identifying the minute field. 1754bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @stable ICU 3.8 1755bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert */ 1756bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert public static final Field MINUTE = new Field("minute", Calendar.MINUTE); 1757bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert 1758bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert /** 1759bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * Constant identifying the month field. 1760bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @stable ICU 3.8 1761bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert */ 1762bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert public static final Field MONTH = new Field("month", Calendar.MONTH); 1763bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert 1764bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert /** 1765bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * Constant identifying the second field. 1766bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @stable ICU 3.8 1767bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert */ 1768bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert public static final Field SECOND = new Field("second", Calendar.SECOND); 1769bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert 1770bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert /** 1771bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * Constant identifying the time zone field. 1772bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @stable ICU 3.8 1773bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert */ 1774bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert public static final Field TIME_ZONE = new Field("time zone", -1); 1775bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert 1776bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert /** 1777bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * Constant identifying the week of month field. 1778bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @stable ICU 3.8 1779bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert */ 1780bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert public static final Field WEEK_OF_MONTH = 1781bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert new Field("week of month", Calendar.WEEK_OF_MONTH); 1782bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert 1783bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert /** 1784bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * Constant identifying the week of year field. 1785bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @stable ICU 3.8 1786bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert */ 1787bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert public static final Field WEEK_OF_YEAR = new Field("week of year", Calendar.WEEK_OF_YEAR); 1788bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert 1789bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert /** 1790bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * Constant identifying the year field. 1791bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @stable ICU 3.8 1792bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert */ 1793bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert public static final Field YEAR = new Field("year", Calendar.YEAR); 1794bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert 1795bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert 1796bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert // ICU only fields ------------------- 1797bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert 1798bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert// /** 1799bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert// * Constant identifying the local day of week field. 1800bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert// * @stable ICU 3.8 1801bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert// */ 1802bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert// public static final Field DOW_LOCAL = new Field("local day of week", Calendar.DOW_LOCAL); 1803bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert 1804bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert// /** 1805bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert// * Constant identifying the extended year field. 1806bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert// * @stable ICU 3.8 1807bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert// */ 1808bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert// public static final Field EXTENDED_YEAR = new Field("extended year", 1809bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert// Calendar.EXTENDED_YEAR); 1810bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert 1811bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert// /** 1812bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert// * Constant identifying the Julian day field. 1813bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert// * @stable ICU 3.8 1814bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert// */ 1815bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert// public static final Field JULIAN_DAY = new Field("Julian day", Calendar.JULIAN_DAY); 1816bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert 1817bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert// /** 1818bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert// * Constant identifying the milliseconds in day field. 1819bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert// * @stable ICU 3.8 1820bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert// */ 1821bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert// public static final Field MILLISECONDS_IN_DAY = 1822bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert// new Field("milliseconds in day", Calendar.MILLISECONDS_IN_DAY); 1823bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert 1824bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert// /** 1825bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert// * Constant identifying the year used with week of year field. 1826bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert// * @stable ICU 3.8 1827bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert// */ 1828bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert// public static final Field YEAR_WOY = new Field("year for week of year", Calendar.YEAR_WOY); 1829bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert 1830bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert// /** 1831bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert// * Constant identifying the quarter field. 1832bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert// * @stable ICU 3.8 1833bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert// */ 1834bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert// public static final Field QUARTER = new Field("quarter", -1); 1835bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert 1836bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert // Stand alone types are variants for its base types. So we do not define Field for 1837bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert // them. 1838bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert /* 1839bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert public static final Field STANDALONE_DAY = 1840bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert new Field("stand alone day of week", Calendar.DAY_OF_WEEK); 1841bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert public static final Field STANDALONE_MONTH = new Field("stand alone month", Calendar.MONTH); 1842bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert public static final Field STANDALONE_QUARTER = new Field("stand alone quarter", -1); 1843bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert */ 1844bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert 1845bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert // Corresponding calendar field 1846bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert private final int calendarField; 1847bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert 1848bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert /** 1849bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * Constructs a <code>DateFormat.Field</code> with the given name and 1850bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * the <code>Calendar</code> field which this attribute represents. Use -1 for 1851bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * <code>calendarField</code> if this field does not have a corresponding 1852bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * <code>Calendar</code> field. 1853bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * 1854bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @param name Name of the attribute 1855bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @param calendarField <code>Calendar</code> field constant 1856bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * 1857bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @stable ICU 3.8 1858bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert */ 1859bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert protected Field(String name, int calendarField) { 1860bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert super(name); 1861bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert this.calendarField = calendarField; 1862bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert if (this.getClass() == DateFormat.Field.class) { 1863bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert FIELD_NAME_MAP.put(name, this); 1864bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert if (calendarField >= 0 && calendarField < CAL_FIELD_COUNT) { 1865bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert CAL_FIELDS[calendarField] = this; 1866bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert } 1867bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert } 1868bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert } 1869bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert 1870bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert /** 1871bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * Returns the <code>Field</code> constant that corresponds to the <code> 1872bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * Calendar</code> field <code>calendarField</code>. If there is no 1873bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * corresponding <code>Field</code> is available, null is returned. 1874bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * 1875bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @param calendarField <code>Calendar</code> field constant 1876bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @return <code>Field</code> associated with the <code>calendarField</code>, 1877bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * or null if no associated <code>Field</code> is available. 1878bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @throws IllegalArgumentException if <code>calendarField</code> is not 1879bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * a valid <code>Calendar</code> field constant. 1880bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * 1881bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @stable ICU 3.8 1882bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert */ 1883bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert public static DateFormat.Field ofCalendarField(int calendarField) { 1884bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert if (calendarField < 0 || calendarField >= CAL_FIELD_COUNT) { 1885bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert throw new IllegalArgumentException("Calendar field number is out of range"); 1886bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert } 1887bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert return CAL_FIELDS[calendarField]; 1888bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert } 1889bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert 1890bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert /** 1891bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * Returns the <code>Calendar</code> field associated with this attribute. 1892bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * If there is no corresponding <code>Calendar</code> available, this will 1893bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * return -1. 1894bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * 1895bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @return <code>Calendar</code> constant for this attribute. 1896bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * 1897bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @stable ICU 3.8 1898bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert */ 1899bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert public int getCalendarField() { 1900bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert return calendarField; 1901bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert } 1902bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert 1903bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert /** 1904bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * Resolves instances being deserialized to the predefined constants. 1905bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * 1906bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @throws InvalidObjectException if the constant could not be resolved. 1907bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * 1908bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert * @stable ICU 3.8 1909bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert */ 1910bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert protected Object readResolve() throws InvalidObjectException { 1911bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert ///CLOVER:OFF 1912bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert if (this.getClass() != DateFormat.Field.class) { 1913bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert throw new InvalidObjectException( 1914bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert "A subclass of DateFormat.Field must implement readResolve."); 1915bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert } 1916bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert ///CLOVER:ON 1917bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert Object o = FIELD_NAME_MAP.get(this.getName()); 1918bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert ///CLOVER:OFF 1919bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert if (o == null) { 1920bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert throw new InvalidObjectException("Unknown attribute name."); 1921bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert } 1922bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert ///CLOVER:ON 1923bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert return o; 1924bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert } 1925bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert } 1926bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert 1927bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert private static int getJDKFormatStyle(int icuFormatStyle) { 1928bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert switch (icuFormatStyle) { 1929bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert case DateFormat.FULL: 1930bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert return java.text.DateFormat.FULL; 1931bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert case DateFormat.LONG: 1932bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert return java.text.DateFormat.LONG; 1933bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert case DateFormat.MEDIUM: 1934bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert return java.text.DateFormat.MEDIUM; 1935bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert case DateFormat.SHORT: 1936bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert return java.text.DateFormat.SHORT; 1937bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert default: 1938bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert throw new UnsupportedOperationException("Style not supported by com.ibm.icu.base"); 1939bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert } 1940bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert } 1941bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert 1942bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert 1943bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert protected static FieldPosition toJDKFieldPosition(FieldPosition icuPos) { 1944bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert if (icuPos == null) { 1945bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert return null; 1946bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert } 1947bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert 1948bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert int fieldID = icuPos.getField(); 1949bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert Format.Field fieldAttribute = icuPos.getFieldAttribute(); 1950bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert 1951bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert FieldPosition jdkPos = null; 1952bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert 1953bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert if (fieldID >= 0) { 1954bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert switch (fieldID) { 1955bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert case ERA_FIELD: 1956bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert fieldID = java.text.DateFormat.ERA_FIELD; 1957bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert break; 1958bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert case YEAR_FIELD: 1959bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert fieldID = java.text.DateFormat.YEAR_FIELD; 1960bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert break; 1961bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert case MONTH_FIELD: 1962bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert fieldID = java.text.DateFormat.MONTH_FIELD; 1963bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert break; 1964bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert case DATE_FIELD: 1965bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert fieldID = java.text.DateFormat.DATE_FIELD; 1966bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert break; 1967bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert case HOUR_OF_DAY1_FIELD: 1968bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert fieldID = java.text.DateFormat.HOUR_OF_DAY1_FIELD; 1969bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert break; 1970bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert case HOUR_OF_DAY0_FIELD: 1971bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert fieldID = java.text.DateFormat.HOUR_OF_DAY0_FIELD; 1972bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert break; 1973bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert case MINUTE_FIELD: 1974bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert fieldID = java.text.DateFormat.MINUTE_FIELD; 1975bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert break; 1976bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert case SECOND_FIELD: 1977bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert fieldID = java.text.DateFormat.SECOND_FIELD; 1978bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert break; 1979bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert case FRACTIONAL_SECOND_FIELD: // MILLISECOND_FIELD 1980bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert fieldID = java.text.DateFormat.MILLISECOND_FIELD; 1981bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert break; 1982bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert case DAY_OF_WEEK_FIELD: 1983bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert fieldID = java.text.DateFormat.DAY_OF_WEEK_FIELD; 1984bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert break; 1985bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert case DAY_OF_YEAR_FIELD: 1986bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert fieldID = java.text.DateFormat.DAY_OF_YEAR_FIELD; 1987bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert break; 1988bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert case DAY_OF_WEEK_IN_MONTH_FIELD: 1989bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert fieldID = java.text.DateFormat.DAY_OF_WEEK_IN_MONTH_FIELD; 1990bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert break; 1991bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert case WEEK_OF_YEAR_FIELD: 1992bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert fieldID = java.text.DateFormat.WEEK_OF_YEAR_FIELD; 1993bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert break; 1994bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert case WEEK_OF_MONTH_FIELD: 1995bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert fieldID = java.text.DateFormat.WEEK_OF_MONTH_FIELD; 1996bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert break; 1997bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert case AM_PM_FIELD: 1998bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert fieldID = java.text.DateFormat.AM_PM_FIELD; 1999bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert break; 2000bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert case HOUR1_FIELD: 2001bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert fieldID = java.text.DateFormat.HOUR1_FIELD; 2002bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert break; 2003bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert case HOUR0_FIELD: 2004bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert fieldID = java.text.DateFormat.HOUR0_FIELD; 2005bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert break; 2006bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert case TIMEZONE_FIELD: 2007bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert fieldID = java.text.DateFormat.TIMEZONE_FIELD; 2008bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert break; 2009bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert 2010bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert case YEAR_WOY_FIELD: 2011bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert case DOW_LOCAL_FIELD: 2012bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert case EXTENDED_YEAR_FIELD: 2013bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert case JULIAN_DAY_FIELD: 2014bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert case MILLISECONDS_IN_DAY_FIELD: 2015bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert case TIMEZONE_RFC_FIELD: 2016bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert case TIMEZONE_GENERIC_FIELD: 2017bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert case STANDALONE_DAY_FIELD: 2018bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert case STANDALONE_MONTH_FIELD: 2019bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert case QUARTER_FIELD: 2020bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert case STANDALONE_QUARTER_FIELD: 2021bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert case TIMEZONE_SPECIAL_FIELD: 2022bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert throw new UnsupportedOperationException("Format Field ID not supported by com.ibm.icu.base"); 2023bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert 2024bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert default: 2025bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert // just let it go 2026bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert break; 2027bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert } 2028bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert } 2029bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert 2030bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert if (fieldAttribute != null) { 2031bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert // map field 2032bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert if (fieldAttribute.equals(Field.AM_PM)) { 2033bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert fieldAttribute = java.text.DateFormat.Field.AM_PM; 2034bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert } else if (fieldAttribute.equals(Field.DAY_OF_MONTH)) { 2035bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert fieldAttribute = java.text.DateFormat.Field.DAY_OF_MONTH; 2036bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert } else if (fieldAttribute.equals(Field.DAY_OF_WEEK)) { 2037bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert fieldAttribute = java.text.DateFormat.Field.DAY_OF_WEEK; 2038bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert } else if (fieldAttribute.equals(Field.DAY_OF_WEEK_IN_MONTH)) { 2039bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert fieldAttribute = java.text.DateFormat.Field.DAY_OF_WEEK_IN_MONTH; 2040bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert } else if (fieldAttribute.equals(Field.DAY_OF_YEAR)) { 2041bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert fieldAttribute = java.text.DateFormat.Field.DAY_OF_YEAR; 2042bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert } else if (fieldAttribute.equals(Field.ERA)) { 2043bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert fieldAttribute = java.text.DateFormat.Field.ERA; 2044bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert } else if (fieldAttribute.equals(Field.HOUR_OF_DAY0)) { 2045bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert fieldAttribute = java.text.DateFormat.Field.HOUR_OF_DAY0; 2046bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert } else if (fieldAttribute.equals(Field.HOUR_OF_DAY1)) { 2047bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert fieldAttribute = java.text.DateFormat.Field.HOUR_OF_DAY1; 2048bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert } else if (fieldAttribute.equals(Field.HOUR0)) { 2049bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert fieldAttribute = java.text.DateFormat.Field.HOUR0; 2050bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert } else if (fieldAttribute.equals(Field.HOUR1)) { 2051bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert fieldAttribute = java.text.DateFormat.Field.HOUR1; 2052bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert } else if (fieldAttribute.equals(Field.MILLISECOND)) { 2053bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert fieldAttribute = java.text.DateFormat.Field.MILLISECOND; 2054bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert } else if (fieldAttribute.equals(Field.MINUTE)) { 2055bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert fieldAttribute = java.text.DateFormat.Field.MINUTE; 2056bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert } else if (fieldAttribute.equals(Field.MONTH)) { 2057bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert fieldAttribute = java.text.DateFormat.Field.MONTH; 2058bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert } else if (fieldAttribute.equals(Field.SECOND)) { 2059bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert fieldAttribute = java.text.DateFormat.Field.SECOND; 2060bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert } else if (fieldAttribute.equals(Field.TIME_ZONE)) { 2061bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert fieldAttribute = java.text.DateFormat.Field.TIME_ZONE; 2062bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert } else if (fieldAttribute.equals(Field.WEEK_OF_MONTH)) { 2063bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert fieldAttribute = java.text.DateFormat.Field.WEEK_OF_MONTH; 2064bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert } else if (fieldAttribute.equals(Field.WEEK_OF_YEAR)) { 2065bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert fieldAttribute = java.text.DateFormat.Field.WEEK_OF_YEAR; 2066bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert } else if (fieldAttribute.equals(Field.YEAR)) { 2067bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert fieldAttribute = java.text.DateFormat.Field.YEAR; 2068bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert } 2069bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert// else if (fieldAttribute.equals(Field.DOW_LOCAL) 2070bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert// || fieldAttribute.equals(Field.EXTENDED_YEAR) 2071bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert// || fieldAttribute.equals(Field.JULIAN_DAY) 2072bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert// || fieldAttribute.equals(Field.MILLISECONDS_IN_DAY) 2073bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert// || fieldAttribute.equals(Field.YEAR_WOY) 2074bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert// || fieldAttribute.equals(Field.QUARTER)) { 2075bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert// // Not supported 2076bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert// throw new UnsupportedOperationException("Format Field not supported by com.ibm.icu.base"); 2077bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert// } 2078bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert 2079bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert jdkPos = new FieldPosition(fieldAttribute, fieldID); 2080bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert } else { 2081bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert jdkPos = new FieldPosition(fieldID); 2082bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert } 2083bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert 2084bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert jdkPos.setBeginIndex(icuPos.getBeginIndex()); 2085bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert jdkPos.setEndIndex(icuPos.getEndIndex()); 2086bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert 2087bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert return jdkPos; 2088bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert } 2089bd1cbb618dcaa1ac6ba7c77dece35cb79593a5d7Fredrik Roubert} 2090