16f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org/* 26f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org* Copyright (C) 1997-2013, International Business Machines Corporation and 36f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org* others. All Rights Reserved. 46f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org******************************************************************************* 56f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org* 66f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org* File SMPDTFMT.H 76f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org* 86f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org* Modification History: 96f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org* 106f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org* Date Name Description 116f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org* 02/19/97 aliu Converted from java. 126f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org* 07/09/97 helena Make ParsePosition into a class. 136f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org* 07/21/98 stephen Added GMT_PLUS, GMT_MINUS 146f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org* Changed setTwoDigitStartDate to set2DigitYearStart 156f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org* Changed getTwoDigitStartDate to get2DigitYearStart 166f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org* Removed subParseLong 176f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org* Removed getZoneIndex (added in DateFormatSymbols) 186f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org* 06/14/99 stephen Removed fgTimeZoneDataSuffix 196f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org* 10/14/99 aliu Updated class doc to describe 2-digit year parsing 206f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org* {j28 4182066}. 216f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org******************************************************************************* 226f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org*/ 236f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 246f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#ifndef SMPDTFMT_H 256f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#define SMPDTFMT_H 266f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 276f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#include "unicode/utypes.h" 286f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 296f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org/** 306f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * \file 316f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * \brief C++ API: Format and parse dates in a language-independent manner. 326f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */ 336f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 346f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#if !UCONFIG_NO_FORMATTING 356f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 366f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#include "unicode/datefmt.h" 376f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#include "unicode/udisplaycontext.h" 386f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 396f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgU_NAMESPACE_BEGIN 406f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 416f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgclass DateFormatSymbols; 426f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgclass DateFormat; 436f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgclass MessageFormat; 446f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgclass FieldPositionHandler; 456f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgclass TimeZoneFormat; 466f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 476f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org/** 486f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * 496f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * SimpleDateFormat is a concrete class for formatting and parsing dates in a 506f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * language-independent manner. It allows for formatting (millis -> text), 516f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * parsing (text -> millis), and normalization. Formats/Parses a date or time, 526f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * which is the standard milliseconds since 24:00 GMT, Jan 1, 1970. 536f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <P> 546f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Clients are encouraged to create a date-time formatter using DateFormat::getInstance(), 556f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * getDateInstance(), getDateInstance(), or getDateTimeInstance() rather than 566f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * explicitly constructing an instance of SimpleDateFormat. This way, the client 576f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * is guaranteed to get an appropriate formatting pattern for whatever locale the 586f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * program is running in. However, if the client needs something more unusual than 596f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * the default patterns in the locales, he can construct a SimpleDateFormat directly 606f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * and give it an appropriate pattern (or use one of the factory methods on DateFormat 616f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * and modify the pattern after the fact with toPattern() and applyPattern(). 626f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * 636f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <p><strong>Date and Time Patterns:</strong></p> 646f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * 656f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <p>Date and time formats are specified by <em>date and time pattern</em> strings. 666f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Within date and time pattern strings, all unquoted ASCII letters [A-Za-z] are reserved 676f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * as pattern letters representing calendar fields. <code>SimpleDateFormat</code> supports 686f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * the date and time formatting algorithm and pattern letters defined by 696f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <a href="http://www.unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table">UTS#35 706f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Unicode Locale Data Markup Language (LDML)</a> and further documented for ICU in the 716f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <a href="https://sites.google.com/site/icuprojectuserguide/formatparse/datetime?pli=1#TOC-Date-Field-Symbol-Table">ICU 726f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * User Guide</a>. The following pattern letters are currently available:</p> 736f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * 746f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <table border="1"> 756f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <tr> 766f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <th>Field</th> 776f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <th style="text-align: center">Sym.</th> 786f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <th style="text-align: center">No.</th> 796f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <th>Example</th> 806f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <th>Description</th> 816f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * </tr> 826f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <tr> 836f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <th rowspan="3">era</th> 846f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <td style="text-align: center" rowspan="3">G</td> 856f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <td style="text-align: center">1..3</td> 866f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <td>AD</td> 876f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <td rowspan="3">Era - Replaced with the Era string for the current date. One to three letters for the 886f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * abbreviated form, four letters for the long form, five for the narrow form.</td> 896f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * </tr> 906f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <tr> 916f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <td style="text-align: center">4</td> 926f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <td>Anno Domini</td> 936f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * </tr> 946f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <tr> 956f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <td style="text-align: center">5</td> 966f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <td>A</td> 976f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * </tr> 986f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <tr> 996f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <th rowspan="6">year</th> 1006f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <td style="text-align: center">y</td> 1016f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <td style="text-align: center">1..n</td> 1026f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <td>1996</td> 1036f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <td>Year. Normally the length specifies the padding, but for two letters it also specifies the maximum 1046f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * length. Example:<div align="center"> 1056f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <center> 1066f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <table border="1" cellpadding="2" cellspacing="0"> 1076f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <tr> 1086f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <th>Year</th> 1096f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <th style="text-align: right">y</th> 1106f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <th style="text-align: right">yy</th> 1116f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <th style="text-align: right">yyy</th> 1126f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <th style="text-align: right">yyyy</th> 1136f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <th style="text-align: right">yyyyy</th> 1146f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * </tr> 1156f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <tr> 1166f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <td>AD 1</td> 1176f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <td style="text-align: right">1</td> 1186f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <td style="text-align: right">01</td> 1196f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <td style="text-align: right">001</td> 1206f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <td style="text-align: right">0001</td> 1216f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <td style="text-align: right">00001</td> 1226f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * </tr> 1236f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <tr> 1246f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <td>AD 12</td> 1256f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <td style="text-align: right">12</td> 1266f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <td style="text-align: right">12</td> 1276f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <td style="text-align: right">012</td> 1286f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <td style="text-align: right">0012</td> 1296f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <td style="text-align: right">00012</td> 1306f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * </tr> 1316f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <tr> 1326f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <td>AD 123</td> 1336f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <td style="text-align: right">123</td> 1346f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <td style="text-align: right">23</td> 1356f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <td style="text-align: right">123</td> 1366f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <td style="text-align: right">0123</td> 1376f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <td style="text-align: right">00123</td> 1386f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * </tr> 1396f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <tr> 1406f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <td>AD 1234</td> 1416f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <td style="text-align: right">1234</td> 1426f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <td style="text-align: right">34</td> 1436f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <td style="text-align: right">1234</td> 1446f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <td style="text-align: right">1234</td> 1456f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <td style="text-align: right">01234</td> 1466f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * </tr> 1476f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <tr> 1486f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <td>AD 12345</td> 1496f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <td style="text-align: right">12345</td> 1506f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <td style="text-align: right">45</td> 1516f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <td style="text-align: right">12345</td> 1526f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <td style="text-align: right">12345</td> 1536f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <td style="text-align: right">12345</td> 1546f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * </tr> 1556f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * </table> 1566f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * </center></div> 1576f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * </td> 1586f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * </tr> 1596f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <tr> 1606f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <td style="text-align: center">Y</td> 1616f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <td style="text-align: center">1..n</td> 1626f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <td>1997</td> 1636f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <td>Year (in "Week of Year" based calendars). Normally the length specifies the padding, 1646f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * but for two letters it also specifies the maximum length. This year designation is used in ISO 1656f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * year-week calendar as defined by ISO 8601, but can be used in non-Gregorian based calendar systems 1666f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * where week date processing is desired. May not always be the same value as calendar year.</td> 1676f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * </tr> 1686f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <tr> 1696f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <td style="text-align: center">u</td> 1706f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <td style="text-align: center">1..n</td> 1716f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <td>4601</td> 1726f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <td>Extended year. This is a single number designating the year of this calendar system, encompassing 1736f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * all supra-year fields. For example, for the Julian calendar system, year numbers are positive, with an 1746f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * era of BCE or CE. An extended year value for the Julian calendar system assigns positive values to CE 1756f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * years and negative values to BCE years, with 1 BCE being year 0.</td> 1766f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * </tr> 1776f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <tr> 1786f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <td style="text-align: center" rowspan="3">U</td> 1796f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <td style="text-align: center">1..3</td> 1806f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <td>甲子</td> 1816f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <td rowspan="3">Cyclic year name. Calendars such as the Chinese lunar calendar (and related calendars) 1826f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * and the Hindu calendars use 60-year cycles of year names. Use one through three letters for the abbreviated 1836f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * name, four for the full name, or five for the narrow name (currently the data only provides abbreviated names, 1846f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * which will be used for all requested name widths). If the calendar does not provide cyclic year name data, 1856f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * or if the year value to be formatted is out of the range of years for which cyclic name data is provided, 1866f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * then numeric formatting is used (behaves like 'y').</td> 1876f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * </tr> 1886f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <tr> 1896f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <td style="text-align: center">4</td> 1906f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <td>(currently also 甲子)</td> 1916f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * </tr> 1926f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <tr> 1936f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <td style="text-align: center">5</td> 1946f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <td>(currently also 甲子)</td> 1956f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * </tr> 1966f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <tr> 1976f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <th rowspan="6">quarter</th> 1986f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <td rowspan="3" style="text-align: center">Q</td> 1996f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <td style="text-align: center">1..2</td> 2006f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <td>02</td> 2016f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <td rowspan="3">Quarter - Use one or two for the numerical quarter, three for the abbreviation, or four 2026f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * for the full name.</td> 2036f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * </tr> 2046f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <tr> 2056f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <td style="text-align: center">3</td> 2066f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <td>Q2</td> 2076f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * </tr> 2086f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <tr> 2096f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <td style="text-align: center">4</td> 2106f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <td>2nd quarter</td> 2116f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * </tr> 2126f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <tr> 2136f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <td rowspan="3" style="text-align: center">q</td> 2146f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <td style="text-align: center">1..2</td> 2156f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <td>02</td> 2166f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <td rowspan="3"><b>Stand-Alone</b> Quarter - Use one or two for the numerical quarter, three for the abbreviation, 2176f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * or four for the full name.</td> 2186f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * </tr> 2196f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <tr> 2206f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <td style="text-align: center">3</td> 2216f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <td>Q2</td> 2226f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * </tr> 2236f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <tr> 2246f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <td style="text-align: center">4</td> 2256f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <td>2nd quarter</td> 2266f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * </tr> 2276f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <tr> 2286f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <th rowspan="8">month</th> 2296f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <td rowspan="4" style="text-align: center">M</td> 2306f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <td style="text-align: center">1..2</td> 2316f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <td>09</td> 2326f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <td rowspan="4">Month - Use one or two for the numerical month, three for the abbreviation, four for 2336f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * the full name, or five for the narrow name.</td> 2346f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * </tr> 2356f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <tr> 2366f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <td style="text-align: center">3</td> 2376f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <td>Sept</td> 2386f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * </tr> 2396f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <tr> 2406f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <td style="text-align: center">4</td> 2416f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <td>September</td> 2426f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * </tr> 2436f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <tr> 2446f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <td style="text-align: center">5</td> 2456f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <td>S</td> 2466f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * </tr> 2476f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <tr> 2486f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <td rowspan="4" style="text-align: center">L</td> 2496f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <td style="text-align: center">1..2</td> 2506f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <td>09</td> 2516f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <td rowspan="4"><b>Stand-Alone</b> Month - Use one or two for the numerical month, three for the abbreviation, 2526f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * or four for the full name, or 5 for the narrow name.</td> 2536f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * </tr> 2546f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <tr> 2556f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <td style="text-align: center">3</td> 2566f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <td>Sept</td> 2576f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * </tr> 2586f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <tr> 2596f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <td style="text-align: center">4</td> 2606f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <td>September</td> 2616f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * </tr> 2626f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <tr> 2636f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <td style="text-align: center">5</td> 2646f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <td>S</td> 2656f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * </tr> 2666f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <tr> 2676f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <th rowspan="2">week</th> 2686f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <td style="text-align: center">w</td> 2696f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <td style="text-align: center">1..2</td> 2706f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <td>27</td> 2716f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <td>Week of Year.</td> 2726f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * </tr> 2736f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <tr> 2746f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <td style="text-align: center">W</td> 2756f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <td style="text-align: center">1</td> 2766f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <td>3</td> 2776f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <td>Week of Month</td> 2786f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * </tr> 2796f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <tr> 2806f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <th rowspan="4">day</th> 2816f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <td style="text-align: center">d</td> 2826f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <td style="text-align: center">1..2</td> 2836f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <td>1</td> 2846f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <td>Date - Day of the month</td> 2856f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * </tr> 2866f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <tr> 2876f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <td style="text-align: center">D</td> 2886f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <td style="text-align: center">1..3</td> 2896f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <td>345</td> 2906f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <td>Day of year</td> 2916f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * </tr> 2926f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <tr> 2936f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <td style="text-align: center">F</td> 2946f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <td style="text-align: center">1</td> 2956f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <td>2</td> 2966f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <td>Day of Week in Month. The example is for the 2nd Wed in July</td> 2976f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * </tr> 2986f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <tr> 2996f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <td style="text-align: center">g</td> 3006f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <td style="text-align: center">1..n</td> 3016f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <td>2451334</td> 3026f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <td>Modified Julian day. This is different from the conventional Julian day number in two regards. 3036f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * First, it demarcates days at local zone midnight, rather than noon GMT. Second, it is a local number; 3046f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * that is, it depends on the local time zone. It can be thought of as a single number that encompasses 3056f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * all the date-related fields.</td> 3066f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * </tr> 3076f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <tr> 3086f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <th rowspan="14">week<br> 3096f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * day</th> 3106f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <td rowspan="4" style="text-align: center">E</td> 3116f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <td style="text-align: center">1..3</td> 3126f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <td>Tues</td> 3136f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <td rowspan="4">Day of week - Use one through three letters for the short day, or four for the full name, 3146f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * five for the narrow name, or six for the short name.</td> 3156f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * </tr> 3166f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <tr> 3176f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <td style="text-align: center">4</td> 3186f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <td>Tuesday</td> 3196f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * </tr> 3206f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <tr> 3216f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <td style="text-align: center">5</td> 3226f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <td>T</td> 3236f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * </tr> 3246f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <tr> 3256f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <td style="text-align: center">6</td> 3266f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <td>Tu</td> 3276f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * </tr> 3286f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <tr> 3296f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <td rowspan="5" style="text-align: center">e</td> 3306f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <td style="text-align: center">1..2</td> 3316f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <td>2</td> 3326f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <td rowspan="5">Local day of week. Same as E except adds a numeric value that will depend on the local 3336f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * starting day of the week, using one or two letters. For this example, Monday is the first day of the week.</td> 3346f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * </tr> 3356f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <tr> 3366f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <td style="text-align: center">3</td> 3376f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <td>Tues</td> 3386f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * </tr> 3396f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <tr> 3406f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <td style="text-align: center">4</td> 3416f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <td>Tuesday</td> 3426f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * </tr> 3436f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <tr> 3446f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <td style="text-align: center">5</td> 3456f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <td>T</td> 3466f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * </tr> 3476f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <tr> 3486f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <td style="text-align: center">6</td> 3496f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <td>Tu</td> 3506f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * </tr> 3516f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <tr> 3526f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <td rowspan="5" style="text-align: center">c</td> 3536f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <td style="text-align: center">1</td> 3546f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <td>2</td> 3556f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <td rowspan="5"><b>Stand-Alone</b> local day of week - Use one letter for the local numeric value (same 3566f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * as 'e'), three for the short day, four for the full name, five for the narrow name, or six for 3576f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * the short name.</td> 3586f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * </tr> 3596f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <tr> 3606f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <td style="text-align: center">3</td> 3616f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <td>Tues</td> 3626f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * </tr> 3636f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <tr> 3646f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <td style="text-align: center">4</td> 3656f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <td>Tuesday</td> 3666f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * </tr> 3676f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <tr> 3686f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <td style="text-align: center">5</td> 3696f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <td>T</td> 3706f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * </tr> 3716f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <tr> 3726f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <td style="text-align: center">6</td> 3736f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <td>Tu</td> 3746f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * </tr> 3756f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <tr> 3766f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <th>period</th> 3776f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <td style="text-align: center">a</td> 3786f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <td style="text-align: center">1</td> 3796f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <td>AM</td> 3806f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <td>AM or PM</td> 3816f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * </tr> 3826f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <tr> 3836f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <th rowspan="4">hour</th> 3846f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <td style="text-align: center">h</td> 3856f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <td style="text-align: center">1..2</td> 3866f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <td>11</td> 3876f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <td>Hour [1-12]. When used in skeleton data or in a skeleton passed in an API for flexible data pattern 3886f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * generation, it should match the 12-hour-cycle format preferred by the locale (h or K); it should not match 3896f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * a 24-hour-cycle format (H or k). Use hh for zero padding.</td> 3906f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * </tr> 3916f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <tr> 3926f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <td style="text-align: center">H</td> 3936f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <td style="text-align: center">1..2</td> 3946f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <td>13</td> 3956f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <td>Hour [0-23]. When used in skeleton data or in a skeleton passed in an API for flexible data pattern 3966f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * generation, it should match the 24-hour-cycle format preferred by the locale (H or k); it should not match a 3976f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * 12-hour-cycle format (h or K). Use HH for zero padding.</td> 3986f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * </tr> 3996f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <tr> 4006f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <td style="text-align: center">K</td> 4016f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <td style="text-align: center">1..2</td> 4026f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <td>0</td> 4036f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <td>Hour [0-11]. When used in a skeleton, only matches K or h, see above. Use KK for zero padding.</td> 4046f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * </tr> 4056f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <tr> 4066f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <td style="text-align: center">k</td> 4076f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <td style="text-align: center">1..2</td> 4086f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <td>24</td> 4096f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <td>Hour [1-24]. When used in a skeleton, only matches k or H, see above. Use kk for zero padding.</td> 4106f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * </tr> 4116f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <tr> 4126f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <th>minute</th> 4136f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <td style="text-align: center">m</td> 4146f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <td style="text-align: center">1..2</td> 4156f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <td>59</td> 4166f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <td>Minute. Use one or two for zero padding.</td> 4176f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * </tr> 4186f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <tr> 4196f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <th rowspan="3">second</th> 4206f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <td style="text-align: center">s</td> 4216f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <td style="text-align: center">1..2</td> 4226f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <td>12</td> 4236f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <td>Second. Use one or two for zero padding.</td> 4246f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * </tr> 4256f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <tr> 4266f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <td style="text-align: center">S</td> 4276f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <td style="text-align: center">1..n</td> 4286f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <td>3456</td> 4296f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <td>Fractional Second - truncates (like other time fields) to the count of letters. 4306f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * (example shows display using pattern SSSS for seconds value 12.34567)</td> 4316f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * </tr> 4326f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <tr> 4336f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <td style="text-align: center">A</td> 4346f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <td style="text-align: center">1..n</td> 4356f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <td>69540000</td> 4366f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <td>Milliseconds in day. This field behaves <i>exactly</i> like a composite of all time-related fields, 4376f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * not including the zone fields. As such, it also reflects discontinuities of those fields on DST transition 4386f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * days. On a day of DST onset, it will jump forward. On a day of DST cessation, it will jump backward. This 4396f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * reflects the fact that is must be combined with the offset field to obtain a unique local time value.</td> 4406f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * </tr> 4416f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <tr> 4426f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <th rowspan="23">zone</th> 4436f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <td rowspan="2" style="text-align: center">z</td> 4446f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <td style="text-align: center">1..3</td> 4456f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <td>PDT</td> 4466f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <td>The <i>short specific non-location format</i>. 4476f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Where that is unavailable, falls back to the <i>short localized GMT format</i> ("O").</td> 4486f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * </tr> 4496f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <tr> 4506f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <td style="text-align: center">4</td> 4516f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <td>Pacific Daylight Time</td> 4526f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <td>The <i>long specific non-location format</i>. 4536f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Where that is unavailable, falls back to the <i>long localized GMT format</i> ("OOOO").</td> 4546f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * </tr> 4556f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <tr> 4566f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <td rowspan="3" style="text-align: center">Z</td> 4576f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <td style="text-align: center">1..3</td> 4586f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <td>-0800</td> 4596f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <td>The <i>ISO8601 basic format</i> with hours, minutes and optional seconds fields. 4606f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * The format is equivalent to RFC 822 zone format (when optional seconds field is absent). 4616f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * This is equivalent to the "xxxx" specifier.</td> 4626f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * </tr> 4636f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <tr> 4646f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <td style="text-align: center">4</td> 4656f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <td>GMT-8:00</td> 4666f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <td>The <i>long localized GMT format</i>. 4676f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * This is equivalent to the "OOOO" specifier.</td> 4686f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * </tr> 4696f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <tr> 4706f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <td style="text-align: center">5</td> 4716f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <td>-08:00<br> 4726f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * -07:52:58</td> 4736f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <td>The <i>ISO8601 extended format</i> with hours, minutes and optional seconds fields. 4746f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * The ISO8601 UTC indicator "Z" is used when local time offset is 0. 4756f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * This is equivalent to the "XXXXX" specifier.</td> 4766f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * </tr> 4776f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <tr> 4786f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <td rowspan="2" style="text-align: center">O</td> 4796f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <td style="text-align: center">1</td> 4806f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <td>GMT-8</td> 4816f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <td>The <i>short localized GMT format</i>.</td> 4826f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * </tr> 4836f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <tr> 4846f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <td style="text-align: center">4</td> 4856f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <td>GMT-08:00</td> 4866f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <td>The <i>long localized GMT format</i>.</td> 4876f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * </tr> 4886f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <tr> 4896f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <td rowspan="2" style="text-align: center">v</td> 4906f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <td style="text-align: center">1</td> 4916f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <td>PT</td> 4926f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <td>The <i>short generic non-location format</i>. 4936f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Where that is unavailable, falls back to the <i>generic location format</i> ("VVVV"), 4946f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * then the <i>short localized GMT format</i> as the final fallback.</td> 4956f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * </tr> 4966f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <tr> 4976f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <td style="text-align: center">4</td> 4986f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <td>Pacific Time</td> 4996f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <td>The <i>long generic non-location format</i>. 5006f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Where that is unavailable, falls back to <i>generic location format</i> ("VVVV"). 5016f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * </tr> 5026f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <tr> 5036f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <td rowspan="4" style="text-align: center">V</td> 5046f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <td style="text-align: center">1</td> 5056f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <td>uslax</td> 5066f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <td>The short time zone ID. 5076f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Where that is unavailable, the special short time zone ID <i>unk</i> (Unknown Zone) is used.<br> 5086f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <i><b>Note</b>: This specifier was originally used for a variant of the short specific non-location format, 5096f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * but it was deprecated in the later version of the LDML specification. In CLDR 23/ICU 51, the definition of 5106f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * the specifier was changed to designate a short time zone ID.</i></td> 5116f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * </tr> 5126f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <tr> 5136f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <td style="text-align: center">2</td> 5146f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <td>America/Los_Angeles</td> 5156f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <td>The long time zone ID.</td> 5166f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * </tr> 5176f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <tr> 5186f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <td style="text-align: center">3</td> 5196f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <td>Los Angeles</td> 5206f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <td>The exemplar city (location) for the time zone. 5216f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Where that is unavailable, the localized exemplar city name for the special zone <i>Etc/Unknown</i> is used 5226f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * as the fallback (for example, "Unknown City"). </td> 5236f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * </tr> 5246f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <tr> 5256f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <td style="text-align: center">4</td> 5266f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <td>Los Angeles Time</td> 5276f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <td>The <i>generic location format</i>. 5286f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Where that is unavailable, falls back to the <i>long localized GMT format</i> ("OOOO"; 5296f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Note: Fallback is only necessary with a GMT-style Time Zone ID, like Etc/GMT-830.)<br> 5306f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * This is especially useful when presenting possible timezone choices for user selection, 5316f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * since the naming is more uniform than the "v" format.</td> 5326f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * </tr> 5336f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <tr> 5346f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <td rowspan="5" style="text-align: center">X</td> 5356f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <td style="text-align: center">1</td> 5366f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <td>-08<br> 5376f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * +0530<br> 5386f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Z</td> 5396f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <td>The <i>ISO8601 basic format</i> with hours field and optional minutes field. 5406f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * The ISO8601 UTC indicator "Z" is used when local time offset is 0.</td> 5416f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * </tr> 5426f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <tr> 5436f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <td style="text-align: center">2</td> 5446f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <td>-0800<br> 5456f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Z</td> 5466f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <td>The <i>ISO8601 basic format</i> with hours and minutes fields. 5476f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * The ISO8601 UTC indicator "Z" is used when local time offset is 0.</td> 5486f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * </tr> 5496f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <tr> 5506f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <td style="text-align: center">3</td> 5516f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <td>-08:00<br> 5526f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Z</td> 5536f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <td>The <i>ISO8601 extended format</i> with hours and minutes fields. 5546f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * The ISO8601 UTC indicator "Z" is used when local time offset is 0.</td> 5556f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * </tr> 5566f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <tr> 5576f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <td style="text-align: center">4</td> 5586f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <td>-0800<br> 5596f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * -075258<br> 5606f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Z</td> 5616f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <td>The <i>ISO8601 basic format</i> with hours, minutes and optional seconds fields. 5626f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * (Note: The seconds field is not supported by the ISO8601 specification.) 5636f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * The ISO8601 UTC indicator "Z" is used when local time offset is 0.</td> 5646f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * </tr> 5656f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <tr> 5666f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <td style="text-align: center">5</td> 5676f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <td>-08:00<br> 5686f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * -07:52:58<br> 5696f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Z</td> 5706f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <td>The <i>ISO8601 extended format</i> with hours, minutes and optional seconds fields. 5716f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * (Note: The seconds field is not supported by the ISO8601 specification.) 5726f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * The ISO8601 UTC indicator "Z" is used when local time offset is 0.</td> 5736f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * </tr> 5746f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <tr> 5756f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <td rowspan="5" style="text-align: center">x</td> 5766f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <td style="text-align: center">1</td> 5776f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <td>-08<br> 5786f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * +0530</td> 5796f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <td>The <i>ISO8601 basic format</i> with hours field and optional minutes field.</td> 5806f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * </tr> 5816f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <tr> 5826f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <td style="text-align: center">2</td> 5836f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <td>-0800</td> 5846f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <td>The <i>ISO8601 basic format</i> with hours and minutes fields.</td> 5856f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * </tr> 5866f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <tr> 5876f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <td style="text-align: center">3</td> 5886f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <td>-08:00</td> 5896f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <td>The <i>ISO8601 extended format</i> with hours and minutes fields.</td> 5906f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * </tr> 5916f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <tr> 5926f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <td style="text-align: center">4</td> 5936f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <td>-0800<br> 5946f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * -075258</td> 5956f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <td>The <i>ISO8601 basic format</i> with hours, minutes and optional seconds fields. 5966f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * (Note: The seconds field is not supported by the ISO8601 specification.)</td> 5976f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * </tr> 5986f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <tr> 5996f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <td style="text-align: center">5</td> 6006f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <td>-08:00<br> 6016f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * -07:52:58</td> 6026f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <td>The <i>ISO8601 extended format</i> with hours, minutes and optional seconds fields. 6036f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * (Note: The seconds field is not supported by the ISO8601 specification.)</td> 6046f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * </tr> 6056f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * </table> 6066f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * 6076f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <P> 6086f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Any characters in the pattern that are not in the ranges of ['a'..'z'] and 6096f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * ['A'..'Z'] will be treated as quoted text. For instance, characters 6106f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * like ':', '.', ' ', '#' and '@' will appear in the resulting time text 6116f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * even they are not embraced within single quotes. 6126f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <P> 6136f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * A pattern containing any invalid pattern letter will result in a failing 6146f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * UErrorCode result during formatting or parsing. 6156f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <P> 6166f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Examples using the US locale: 6176f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <pre> 6186f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * \code 6196f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Format Pattern Result 6206f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * -------------- ------- 6216f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * "yyyy.MM.dd G 'at' HH:mm:ss vvvv" ->> 1996.07.10 AD at 15:08:56 Pacific Time 6226f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * "EEE, MMM d, ''yy" ->> Wed, July 10, '96 6236f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * "h:mm a" ->> 12:08 PM 6246f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * "hh 'o''clock' a, zzzz" ->> 12 o'clock PM, Pacific Daylight Time 6256f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * "K:mm a, vvv" ->> 0:00 PM, PT 6266f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * "yyyyy.MMMMM.dd GGG hh:mm aaa" ->> 1996.July.10 AD 12:08 PM 6276f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * \endcode 6286f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * </pre> 6296f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Code Sample: 6306f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <pre> 6316f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * \code 6326f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * UErrorCode success = U_ZERO_ERROR; 6336f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * SimpleTimeZone* pdt = new SimpleTimeZone(-8 * 60 * 60 * 1000, "PST"); 6346f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * pdt->setStartRule( Calendar::APRIL, 1, Calendar::SUNDAY, 2*60*60*1000); 6356f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * pdt->setEndRule( Calendar::OCTOBER, -1, Calendar::SUNDAY, 2*60*60*1000); 6366f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * 6376f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * // Format the current time. 6386f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * SimpleDateFormat* formatter 6396f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * = new SimpleDateFormat ("yyyy.MM.dd G 'at' hh:mm:ss a zzz", success ); 6406f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * GregorianCalendar cal(success); 6416f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * UDate currentTime_1 = cal.getTime(success); 6426f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * FieldPosition fp(0); 6436f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * UnicodeString dateString; 6446f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * formatter->format( currentTime_1, dateString, fp ); 6456f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * cout << "result: " << dateString << endl; 6466f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * 6476f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * // Parse the previous string back into a Date. 6486f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * ParsePosition pp(0); 6496f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * UDate currentTime_2 = formatter->parse(dateString, pp ); 6506f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * \endcode 6516f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * </pre> 6526f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * In the above example, the time value "currentTime_2" obtained from parsing 6536f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * will be equal to currentTime_1. However, they may not be equal if the am/pm 6546f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * marker 'a' is left out from the format pattern while the "hour in am/pm" 6556f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * pattern symbol is used. This information loss can happen when formatting the 6566f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * time in PM. 6576f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * 6586f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <p> 6596f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * When parsing a date string using the abbreviated year pattern ("y" or "yy"), 6606f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * SimpleDateFormat must interpret the abbreviated year 6616f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * relative to some century. It does this by adjusting dates to be 6626f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * within 80 years before and 20 years after the time the SimpleDateFormat 6636f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * instance is created. For example, using a pattern of "MM/dd/yy" and a 6646f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * SimpleDateFormat instance created on Jan 1, 1997, the string 6656f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * "01/11/12" would be interpreted as Jan 11, 2012 while the string "05/04/64" 6666f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * would be interpreted as May 4, 1964. 6676f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * During parsing, only strings consisting of exactly two digits, as defined by 6686f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <code>Unicode::isDigit()</code>, will be parsed into the default century. 6696f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Any other numeric string, such as a one digit string, a three or more digit 6706f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * string, or a two digit string that isn't all digits (for example, "-1"), is 6716f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * interpreted literally. So "01/02/3" or "01/02/003" are parsed (for the 6726f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Gregorian calendar), using the same pattern, as Jan 2, 3 AD. Likewise (but 6736f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * only in lenient parse mode, the default) "01/02/-3" is parsed as Jan 2, 4 BC. 6746f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * 6756f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <p> 6766f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * If the year pattern has more than two 'y' characters, the year is 6776f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * interpreted literally, regardless of the number of digits. So using the 6786f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * pattern "MM/dd/yyyy", "01/11/12" parses to Jan 11, 12 A.D. 6796f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * 6806f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <p> 6816f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * When numeric fields abut one another directly, with no intervening delimiter 6826f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * characters, they constitute a run of abutting numeric fields. Such runs are 6836f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * parsed specially. For example, the format "HHmmss" parses the input text 6846f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * "123456" to 12:34:56, parses the input text "12345" to 1:23:45, and fails to 6856f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * parse "1234". In other words, the leftmost field of the run is flexible, 6866f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * while the others keep a fixed width. If the parse fails anywhere in the run, 6876f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * then the leftmost field is shortened by one character, and the entire run is 6886f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * parsed again. This is repeated until either the parse succeeds or the 6896f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * leftmost field is one character in length. If the parse still fails at that 6906f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * point, the parse of the run fails. 6916f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * 6926f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <P> 6936f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * For time zones that have no names, SimpleDateFormat uses strings GMT+hours:minutes or 6946f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * GMT-hours:minutes. 6956f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <P> 6966f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * The calendar defines what is the first day of the week, the first week of the 6976f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * year, whether hours are zero based or not (0 vs 12 or 24), and the timezone. 6986f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * There is one common number format to handle all the numbers; the digit count 6996f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * is handled programmatically according to the pattern. 7006f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * 7016f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <p><em>User subclasses are not supported.</em> While clients may write 7026f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * subclasses, such code will not necessarily work and will not be 7036f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * guaranteed to work stably from release to release. 7046f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */ 7056f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgclass U_I18N_API SimpleDateFormat: public DateFormat { 7066f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgpublic: 7076f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org /** 7086f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Construct a SimpleDateFormat using the default pattern for the default 7096f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * locale. 7106f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <P> 7116f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * [Note:] Not all locales support SimpleDateFormat; for full generality, 7126f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * use the factory methods in the DateFormat class. 7136f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param status Output param set to success/failure code. 7146f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @stable ICU 2.0 7156f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */ 7166f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org SimpleDateFormat(UErrorCode& status); 7176f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 7186f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org /** 7196f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Construct a SimpleDateFormat using the given pattern and the default locale. 7206f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * The locale is used to obtain the symbols used in formatting (e.g., the 7216f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * names of the months), but not to provide the pattern. 7226f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <P> 7236f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * [Note:] Not all locales support SimpleDateFormat; for full generality, 7246f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * use the factory methods in the DateFormat class. 7256f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param pattern the pattern for the format. 7266f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param status Output param set to success/failure code. 7276f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @stable ICU 2.0 7286f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */ 7296f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org SimpleDateFormat(const UnicodeString& pattern, 7306f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org UErrorCode& status); 7316f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 7326f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org /** 7336f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Construct a SimpleDateFormat using the given pattern, numbering system override, and the default locale. 7346f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * The locale is used to obtain the symbols used in formatting (e.g., the 7356f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * names of the months), but not to provide the pattern. 7366f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <P> 7376f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * A numbering system override is a string containing either the name of a known numbering system, 7386f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * or a set of field and numbering system pairs that specify which fields are to be formattied with 7396f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * the alternate numbering system. For example, to specify that all numeric fields in the specified 7406f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * date or time pattern are to be rendered using Thai digits, simply specify the numbering system override 7416f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * as "thai". To specify that just the year portion of the date be formatted using Hebrew numbering, 7426f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * use the override string "y=hebrew". Numbering system overrides can be combined using a semi-colon 7436f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * character in the override string, such as "d=decimal;M=arabic;y=hebrew", etc. 7446f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * 7456f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <P> 7466f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * [Note:] Not all locales support SimpleDateFormat; for full generality, 7476f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * use the factory methods in the DateFormat class. 7486f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param pattern the pattern for the format. 7496f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param override the override string. 7506f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param status Output param set to success/failure code. 7516f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @stable ICU 4.2 7526f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */ 7536f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org SimpleDateFormat(const UnicodeString& pattern, 7546f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org const UnicodeString& override, 7556f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org UErrorCode& status); 7566f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 7576f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org /** 7586f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Construct a SimpleDateFormat using the given pattern and locale. 7596f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * The locale is used to obtain the symbols used in formatting (e.g., the 7606f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * names of the months), but not to provide the pattern. 7616f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <P> 7626f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * [Note:] Not all locales support SimpleDateFormat; for full generality, 7636f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * use the factory methods in the DateFormat class. 7646f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param pattern the pattern for the format. 7656f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param locale the given locale. 7666f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param status Output param set to success/failure code. 7676f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @stable ICU 2.0 7686f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */ 7696f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org SimpleDateFormat(const UnicodeString& pattern, 7706f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org const Locale& locale, 7716f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org UErrorCode& status); 7726f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 7736f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org /** 7746f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Construct a SimpleDateFormat using the given pattern, numbering system override, and locale. 7756f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * The locale is used to obtain the symbols used in formatting (e.g., the 7766f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * names of the months), but not to provide the pattern. 7776f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <P> 7786f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * A numbering system override is a string containing either the name of a known numbering system, 7796f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * or a set of field and numbering system pairs that specify which fields are to be formattied with 7806f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * the alternate numbering system. For example, to specify that all numeric fields in the specified 7816f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * date or time pattern are to be rendered using Thai digits, simply specify the numbering system override 7826f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * as "thai". To specify that just the year portion of the date be formatted using Hebrew numbering, 7836f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * use the override string "y=hebrew". Numbering system overrides can be combined using a semi-colon 7846f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * character in the override string, such as "d=decimal;M=arabic;y=hebrew", etc. 7856f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <P> 7866f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * [Note:] Not all locales support SimpleDateFormat; for full generality, 7876f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * use the factory methods in the DateFormat class. 7886f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param pattern the pattern for the format. 7896f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param override the numbering system override. 7906f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param locale the given locale. 7916f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param status Output param set to success/failure code. 7926f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @stable ICU 4.2 7936f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */ 7946f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org SimpleDateFormat(const UnicodeString& pattern, 7956f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org const UnicodeString& override, 7966f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org const Locale& locale, 7976f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org UErrorCode& status); 7986f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 7996f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org /** 8006f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Construct a SimpleDateFormat using the given pattern and locale-specific 8016f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * symbol data. The formatter takes ownership of the DateFormatSymbols object; 8026f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * the caller is no longer responsible for deleting it. 8036f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param pattern the given pattern for the format. 8046f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param formatDataToAdopt the symbols to be adopted. 8056f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param status Output param set to success/faulure code. 8066f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @stable ICU 2.0 8076f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */ 8086f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org SimpleDateFormat(const UnicodeString& pattern, 8096f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org DateFormatSymbols* formatDataToAdopt, 8106f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org UErrorCode& status); 8116f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 8126f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org /** 8136f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Construct a SimpleDateFormat using the given pattern and locale-specific 8146f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * symbol data. The DateFormatSymbols object is NOT adopted; the caller 8156f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * remains responsible for deleting it. 8166f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param pattern the given pattern for the format. 8176f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param formatData the formatting symbols to be use. 8186f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param status Output param set to success/faulure code. 8196f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @stable ICU 2.0 8206f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */ 8216f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org SimpleDateFormat(const UnicodeString& pattern, 8226f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org const DateFormatSymbols& formatData, 8236f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org UErrorCode& status); 8246f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 8256f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org /** 8266f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Copy constructor. 8276f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @stable ICU 2.0 8286f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */ 8296f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org SimpleDateFormat(const SimpleDateFormat&); 8306f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 8316f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org /** 8326f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Assignment operator. 8336f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @stable ICU 2.0 8346f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */ 8356f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org SimpleDateFormat& operator=(const SimpleDateFormat&); 8366f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 8376f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org /** 8386f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Destructor. 8396f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @stable ICU 2.0 8406f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */ 8416f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org virtual ~SimpleDateFormat(); 8426f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 8436f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org /** 8446f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Clone this Format object polymorphically. The caller owns the result and 8456f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * should delete it when done. 8466f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @return A copy of the object. 8476f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @stable ICU 2.0 8486f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */ 8496f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org virtual Format* clone(void) const; 8506f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 8516f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org /** 8526f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Return true if the given Format objects are semantically equal. Objects 8536f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * of different subclasses are considered unequal. 8546f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param other the object to be compared with. 8556f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @return true if the given Format objects are semantically equal. 8566f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @stable ICU 2.0 8576f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */ 8586f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org virtual UBool operator==(const Format& other) const; 8596f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 8606f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 8616f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org using DateFormat::format; 8626f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 8636f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org /** 8646f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Format a date or time, which is the standard millis since 24:00 GMT, Jan 8656f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * 1, 1970. Overrides DateFormat pure virtual method. 8666f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <P> 8676f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Example: using the US locale: "yyyy.MM.dd e 'at' HH:mm:ss zzz" ->> 8686f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * 1996.07.10 AD at 15:08:56 PDT 8696f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * 8706f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param cal Calendar set to the date and time to be formatted 8716f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * into a date/time string. 8726f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param appendTo Output parameter to receive result. 8736f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Result is appended to existing contents. 8746f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param pos The formatting position. On input: an alignment field, 8756f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * if desired. On output: the offsets of the alignment field. 8766f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @return Reference to 'appendTo' parameter. 8776f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @stable ICU 2.1 8786f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */ 8796f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org virtual UnicodeString& format( Calendar& cal, 8806f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org UnicodeString& appendTo, 8816f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org FieldPosition& pos) const; 8826f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 8836f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org /** 8846f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Format a date or time, which is the standard millis since 24:00 GMT, Jan 8856f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * 1, 1970. Overrides DateFormat pure virtual method. 8866f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <P> 8876f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Example: using the US locale: "yyyy.MM.dd e 'at' HH:mm:ss zzz" ->> 8886f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * 1996.07.10 AD at 15:08:56 PDT 8896f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * 8906f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param cal Calendar set to the date and time to be formatted 8916f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * into a date/time string. 8926f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param appendTo Output parameter to receive result. 8936f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Result is appended to existing contents. 8946f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param posIter On return, can be used to iterate over positions 8956f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * of fields generated by this format call. Field values 8966f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * are defined in UDateFormatField. 8976f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param status Input/output param set to success/failure code. 8986f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @return Reference to 'appendTo' parameter. 8996f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @stable ICU 4.4 9006f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */ 9016f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org virtual UnicodeString& format( Calendar& cal, 9026f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org UnicodeString& appendTo, 9036f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org FieldPositionIterator* posIter, 9046f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org UErrorCode& status) const; 9056f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 9066f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org using DateFormat::parse; 9076f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 9086f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org /** 9096f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Parse a date/time string beginning at the given parse position. For 9106f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * example, a time text "07/10/96 4:5 PM, PDT" will be parsed into a Date 9116f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * that is equivalent to Date(837039928046). 9126f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <P> 9136f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * By default, parsing is lenient: If the input is not in the form used by 9146f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * this object's format method but can still be parsed as a date, then the 9156f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * parse succeeds. Clients may insist on strict adherence to the format by 9166f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * calling setLenient(false). 9176f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @see DateFormat::setLenient(boolean) 9186f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * 9196f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param text The date/time string to be parsed 9206f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param cal A Calendar set on input to the date and time to be used for 9216f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * missing values in the date/time string being parsed, and set 9226f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * on output to the parsed date/time. When the calendar type is 9236f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * different from the internal calendar held by this SimpleDateFormat 9246f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * instance, the internal calendar will be cloned to a work 9256f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * calendar set to the same milliseconds and time zone as the 9266f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * cal parameter, field values will be parsed based on the work 9276f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * calendar, then the result (milliseconds and time zone) will 9286f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * be set in this calendar. 9296f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param pos On input, the position at which to start parsing; on 9306f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * output, the position at which parsing terminated, or the 9316f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * start position if the parse failed. 9326f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @stable ICU 2.1 9336f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */ 9346f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org virtual void parse( const UnicodeString& text, 9356f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org Calendar& cal, 9366f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org ParsePosition& pos) const; 9376f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 9386f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 9396f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org /** 9406f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Set the start UDate used to interpret two-digit year strings. 9416f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * When dates are parsed having 2-digit year strings, they are placed within 9426f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * a assumed range of 100 years starting on the two digit start date. For 9436f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * example, the string "24-Jan-17" may be in the year 1817, 1917, 2017, or 9446f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * some other year. SimpleDateFormat chooses a year so that the resultant 9456f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * date is on or after the two digit start date and within 100 years of the 9466f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * two digit start date. 9476f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <P> 9486f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * By default, the two digit start date is set to 80 years before the current 9496f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * time at which a SimpleDateFormat object is created. 9506f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param d start UDate used to interpret two-digit year strings. 9516f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param status Filled in with U_ZERO_ERROR if the parse was successful, and with 9526f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * an error value if there was a parse error. 9536f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @stable ICU 2.0 9546f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */ 9556f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org virtual void set2DigitYearStart(UDate d, UErrorCode& status); 9566f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 9576f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org /** 9586f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Get the start UDate used to interpret two-digit year strings. 9596f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * When dates are parsed having 2-digit year strings, they are placed within 9606f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * a assumed range of 100 years starting on the two digit start date. For 9616f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * example, the string "24-Jan-17" may be in the year 1817, 1917, 2017, or 9626f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * some other year. SimpleDateFormat chooses a year so that the resultant 9636f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * date is on or after the two digit start date and within 100 years of the 9646f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * two digit start date. 9656f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <P> 9666f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * By default, the two digit start date is set to 80 years before the current 9676f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * time at which a SimpleDateFormat object is created. 9686f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param status Filled in with U_ZERO_ERROR if the parse was successful, and with 9696f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * an error value if there was a parse error. 9706f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @stable ICU 2.0 9716f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */ 9726f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org UDate get2DigitYearStart(UErrorCode& status) const; 9736f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 9746f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org /** 9756f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Return a pattern string describing this date format. 9766f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param result Output param to receive the pattern. 9776f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @return A reference to 'result'. 9786f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @stable ICU 2.0 9796f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */ 9806f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org virtual UnicodeString& toPattern(UnicodeString& result) const; 9816f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 9826f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org /** 9836f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Return a localized pattern string describing this date format. 9846f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * In most cases, this will return the same thing as toPattern(), 9856f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * but a locale can specify characters to use in pattern descriptions 9866f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * in place of the ones described in this class's class documentation. 9876f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * (Presumably, letters that would be more mnemonic in that locale's 9886f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * language.) This function would produce a pattern using those 9896f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * letters. 9906f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * 9916f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param result Receives the localized pattern. 9926f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param status Output param set to success/failure code on 9936f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * exit. If the pattern is invalid, this will be 9946f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * set to a failure result. 9956f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @return A reference to 'result'. 9966f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @stable ICU 2.0 9976f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */ 9986f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org virtual UnicodeString& toLocalizedPattern(UnicodeString& result, 9996f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org UErrorCode& status) const; 10006f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 10016f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org /** 10026f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Apply the given unlocalized pattern string to this date format. 10036f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * (i.e., after this call, this formatter will format dates according to 10046f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * the new pattern) 10056f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * 10066f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param pattern The pattern to be applied. 10076f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @stable ICU 2.0 10086f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */ 10096f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org virtual void applyPattern(const UnicodeString& pattern); 10106f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 10116f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org /** 10126f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Apply the given localized pattern string to this date format. 10136f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * (see toLocalizedPattern() for more information on localized patterns.) 10146f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * 10156f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param pattern The localized pattern to be applied. 10166f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param status Output param set to success/failure code on 10176f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * exit. If the pattern is invalid, this will be 10186f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * set to a failure result. 10196f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @stable ICU 2.0 10206f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */ 10216f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org virtual void applyLocalizedPattern(const UnicodeString& pattern, 10226f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org UErrorCode& status); 10236f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 10246f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org /** 10256f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Gets the date/time formatting symbols (this is an object carrying 10266f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * the various strings and other symbols used in formatting: e.g., month 10276f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * names and abbreviations, time zone names, AM/PM strings, etc.) 10286f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @return a copy of the date-time formatting data associated 10296f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * with this date-time formatter. 10306f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @stable ICU 2.0 10316f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */ 10326f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org virtual const DateFormatSymbols* getDateFormatSymbols(void) const; 10336f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 10346f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org /** 10356f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Set the date/time formatting symbols. The caller no longer owns the 10366f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * DateFormatSymbols object and should not delete it after making this call. 10376f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param newFormatSymbols the given date-time formatting symbols to copy. 10386f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @stable ICU 2.0 10396f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */ 10406f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org virtual void adoptDateFormatSymbols(DateFormatSymbols* newFormatSymbols); 10416f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 10426f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org /** 10436f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Set the date/time formatting data. 10446f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param newFormatSymbols the given date-time formatting symbols to copy. 10456f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @stable ICU 2.0 10466f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */ 10476f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org virtual void setDateFormatSymbols(const DateFormatSymbols& newFormatSymbols); 10486f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 10496f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org /** 10506f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Return the class ID for this class. This is useful only for comparing to 10516f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * a return value from getDynamicClassID(). For example: 10526f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <pre> 10536f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * . Base* polymorphic_pointer = createPolymorphicObject(); 10546f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * . if (polymorphic_pointer->getDynamicClassID() == 10556f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * . erived::getStaticClassID()) ... 10566f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * </pre> 10576f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @return The class ID for all objects of this class. 10586f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @stable ICU 2.0 10596f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */ 10606f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org static UClassID U_EXPORT2 getStaticClassID(void); 10616f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 10626f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org /** 10636f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Returns a unique class ID POLYMORPHICALLY. Pure virtual override. This 10646f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * method is to implement a simple version of RTTI, since not all C++ 10656f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * compilers support genuine RTTI. Polymorphic operator==() and clone() 10666f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * methods call this method. 10676f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * 10686f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @return The class ID for this object. All objects of a 10696f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * given class have the same class ID. Objects of 10706f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * other classes have different class IDs. 10716f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @stable ICU 2.0 10726f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */ 10736f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org virtual UClassID getDynamicClassID(void) const; 10746f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 10756f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org /** 10766f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Set the calendar to be used by this date format. Initially, the default 10776f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * calendar for the specified or default locale is used. The caller should 10786f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * not delete the Calendar object after it is adopted by this call. 10796f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Adopting a new calendar will change to the default symbols. 10806f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * 10816f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param calendarToAdopt Calendar object to be adopted. 10826f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @stable ICU 2.0 10836f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */ 10846f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org virtual void adoptCalendar(Calendar* calendarToAdopt); 10856f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 10866f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org /* Cannot use #ifndef U_HIDE_DRAFT_API for the following draft method since it is virtual */ 10876f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org /** 10886f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Set a particular UDisplayContext value in the formatter, such as 10896f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * UDISPCTX_CAPITALIZATION_FOR_STANDALONE. 10906f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param value The UDisplayContext value to set. 10916f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param status Input/output status. If at entry this indicates a failure 10926f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * status, the function will do nothing; otherwise this will be 10936f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * updated with any new status from the function. 10946f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @draft ICU 51 10956f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */ 10966f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org virtual void setContext(UDisplayContext value, UErrorCode& status); 10976f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 10986f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org /* Cannot use #ifndef U_HIDE_DRAFT_API for the following draft method since it is virtual */ 10996f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org /** 11006f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Get the formatter's UDisplayContext value for the specified UDisplayContextType, 11016f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * such as UDISPCTX_TYPE_CAPITALIZATION. 11026f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param type The UDisplayContextType whose value to return 11036f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param status Input/output status. If at entry this indicates a failure 11046f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * status, the function will do nothing; otherwise this will be 11056f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * updated with any new status from the function. 11066f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @return The UDisplayContextValue for the specified type. 11076f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @draft ICU 51 11086f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */ 11096f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org virtual UDisplayContext getContext(UDisplayContextType type, UErrorCode& status) const; 11106f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 11116f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org /* Cannot use #ifndef U_HIDE_INTERNAL_API for the following methods since they are virtual */ 11126f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org /** 11136f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Sets the TimeZoneFormat to be used by this date/time formatter. 11146f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * The caller should not delete the TimeZoneFormat object after 11156f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * it is adopted by this call. 11166f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param timeZoneFormatToAdopt The TimeZoneFormat object to be adopted. 11176f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @internal ICU 49 technology preview 11186f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */ 11196f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org virtual void adoptTimeZoneFormat(TimeZoneFormat* timeZoneFormatToAdopt); 11206f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 11216f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org /** 11226f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Sets the TimeZoneFormat to be used by this date/time formatter. 11236f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param newTimeZoneFormat The TimeZoneFormat object to copy. 11246f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @internal ICU 49 technology preview 11256f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */ 11266f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org virtual void setTimeZoneFormat(const TimeZoneFormat& newTimeZoneFormat); 11276f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 11286f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org /** 11296f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Gets the time zone format object associated with this date/time formatter. 11306f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @return the time zone format associated with this date/time formatter. 11316f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @internal ICU 49 technology preview 11326f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */ 11336f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org virtual const TimeZoneFormat* getTimeZoneFormat(void) const; 11346f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 11356f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#ifndef U_HIDE_INTERNAL_API 11366f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org /** 11376f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * This is for ICU internal use only. Please do not use. 11386f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Check whether the 'field' is smaller than all the fields covered in 11396f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * pattern, return TRUE if it is. The sequence of calendar field, 11406f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * from large to small is: ERA, YEAR, MONTH, DATE, AM_PM, HOUR, MINUTE,... 11416f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param field the calendar field need to check against 11426f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @return TRUE if the 'field' is smaller than all the fields 11436f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * covered in pattern. FALSE otherwise. 11446f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @internal ICU 4.0 11456f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */ 11466f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org UBool isFieldUnitIgnored(UCalendarDateFields field) const; 11476f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 11486f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 11496f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org /** 11506f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * This is for ICU internal use only. Please do not use. 11516f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Check whether the 'field' is smaller than all the fields covered in 11526f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * pattern, return TRUE if it is. The sequence of calendar field, 11536f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * from large to small is: ERA, YEAR, MONTH, DATE, AM_PM, HOUR, MINUTE,... 11546f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param pattern the pattern to check against 11556f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param field the calendar field need to check against 11566f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @return TRUE if the 'field' is smaller than all the fields 11576f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * covered in pattern. FALSE otherwise. 11586f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @internal ICU 4.0 11596f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */ 11606f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org static UBool isFieldUnitIgnored(const UnicodeString& pattern, 11616f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org UCalendarDateFields field); 11626f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 11636f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org /** 11646f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * This is for ICU internal use only. Please do not use. 11656f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Get the locale of this simple date formatter. 11666f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * It is used in DateIntervalFormat. 11676f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * 11686f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @return locale in this simple date formatter 11696f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @internal ICU 4.0 11706f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */ 11716f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org const Locale& getSmpFmtLocale(void) const; 11726f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#endif /* U_HIDE_INTERNAL_API */ 11736f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 11746f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgprivate: 11756f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org friend class DateFormat; 11766f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 11776f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org void initializeDefaultCentury(void); 11786f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 11796f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org SimpleDateFormat(); // default constructor not implemented 11806f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 11816f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org /** 11826f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Used by the DateFormat factory methods to construct a SimpleDateFormat. 11836f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param timeStyle the time style. 11846f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param dateStyle the date style. 11856f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param locale the given locale. 11866f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param status Output param set to success/failure code on 11876f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * exit. 11886f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */ 11896f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org SimpleDateFormat(EStyle timeStyle, EStyle dateStyle, const Locale& locale, UErrorCode& status); 11906f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 11916f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org /** 11926f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Construct a SimpleDateFormat for the given locale. If no resource data 11936f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * is available, create an object of last resort, using hard-coded strings. 11946f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * This is an internal method, called by DateFormat. It should never fail. 11956f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param locale the given locale. 11966f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param status Output param set to success/failure code on 11976f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * exit. 11986f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */ 11996f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org SimpleDateFormat(const Locale& locale, UErrorCode& status); // Use default pattern 12006f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 12016f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org /** 12026f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Hook called by format(... FieldPosition& ...) and format(...FieldPositionIterator&...) 12036f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */ 12046f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org UnicodeString& _format(Calendar& cal, UnicodeString& appendTo, FieldPositionHandler& handler, UErrorCode& status) const; 12056f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 12066f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org /** 12076f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Called by format() to format a single field. 12086f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * 12096f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param appendTo Output parameter to receive result. 12106f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Result is appended to existing contents. 12116f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param ch The format character we encountered in the pattern. 12126f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param count Number of characters in the current pattern symbol (e.g., 12136f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * "yyyy" in the pattern would result in a call to this function 12146f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * with ch equal to 'y' and count equal to 4) 12156f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param capitalizationContext Capitalization context for this date format. 12166f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param fieldNum Zero-based numbering of current field within the overall format. 12176f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param handler Records information about field positions. 12186f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param cal Calendar to use 12196f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param status Receives a status code, which will be U_ZERO_ERROR if the operation 12206f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * succeeds. 12216f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */ 12226f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org void subFormat(UnicodeString &appendTo, 12236f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org UChar ch, 12246f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org int32_t count, 12256f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org UDisplayContext capitalizationContext, 12266f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org int32_t fieldNum, 12276f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org FieldPositionHandler& handler, 12286f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org Calendar& cal, 12296f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org UErrorCode& status) const; // in case of illegal argument 12306f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 12316f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org /** 12326f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Used by subFormat() to format a numeric value. 12336f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Appends to toAppendTo a string representation of "value" 12346f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * having a number of digits between "minDigits" and 12356f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * "maxDigits". Uses the DateFormat's NumberFormat. 12366f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * 12376f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param currentNumberFormat 12386f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param appendTo Output parameter to receive result. 12396f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Formatted number is appended to existing contents. 12406f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param value Value to format. 12416f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param minDigits Minimum number of digits the result should have 12426f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param maxDigits Maximum number of digits the result should have 12436f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */ 12446f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org void zeroPaddingNumber(NumberFormat *currentNumberFormat, 12456f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org UnicodeString &appendTo, 12466f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org int32_t value, 12476f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org int32_t minDigits, 12486f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org int32_t maxDigits) const; 12496f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 12506f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org /** 12516f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Return true if the given format character, occuring count 12526f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * times, represents a numeric field. 12536f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */ 12546f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org static UBool isNumeric(UChar formatChar, int32_t count); 12556f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 12566f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org /** 12576f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Returns TRUE if the patternOffset is at the start of a numeric field. 12586f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */ 12596f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org static UBool isAtNumericField(const UnicodeString &pattern, int32_t patternOffset); 12606f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 12616f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org /** 12626f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Returns TRUE if the patternOffset is right after a non-numeric field. 12636f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */ 12646f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org static UBool isAfterNonNumericField(const UnicodeString &pattern, int32_t patternOffset); 12656f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 12666f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org /** 12676f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * initializes fCalendar from parameters. Returns fCalendar as a convenience. 12686f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param adoptZone Zone to be adopted, or NULL for TimeZone::createDefault(). 12696f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param locale Locale of the calendar 12706f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param status Error code 12716f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @return the newly constructed fCalendar 12726f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */ 12736f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org Calendar *initializeCalendar(TimeZone* adoptZone, const Locale& locale, UErrorCode& status); 12746f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 12756f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org /** 12766f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * initializes fSymbols from parameters. 12776f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param locale Locale of the symbols 12786f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param calendar Alias to Calendar that will be used. 12796f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param status Error code 12806f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */ 12816f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org void initializeSymbols(const Locale& locale, Calendar* calendar, UErrorCode& status); 12826f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 12836f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org /** 12846f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Called by several of the constructors to load pattern data and formatting symbols 12856f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * out of a resource bundle and initialize the locale based on it. 12866f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param timeStyle The time style, as passed to DateFormat::createDateInstance(). 12876f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param dateStyle The date style, as passed to DateFormat::createTimeInstance(). 12886f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param locale The locale to load the patterns from. 12896f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param status Filled in with an error code if loading the data from the 12906f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * resources fails. 12916f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */ 12926f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org void construct(EStyle timeStyle, EStyle dateStyle, const Locale& locale, UErrorCode& status); 12936f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 12946f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org /** 12956f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Called by construct() and the various constructors to set up the SimpleDateFormat's 12966f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Calendar and NumberFormat objects. 12976f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param locale The locale for which we want a Calendar and a NumberFormat. 12986f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param status Filled in with an error code if creating either subobject fails. 12996f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */ 13006f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org void initialize(const Locale& locale, UErrorCode& status); 13016f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 13026f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org /** 13036f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Private code-size reduction function used by subParse. 13046f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param text the time text being parsed. 13056f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param start where to start parsing. 13066f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param field the date field being parsed. 13076f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param stringArray the string array to parsed. 13086f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param stringArrayCount the size of the array. 13096f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param monthPattern pointer to leap month pattern, or NULL if none. 13106f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param cal a Calendar set to the date and time to be formatted 13116f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * into a date/time string. 13126f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @return the new start position if matching succeeded; a negative number 13136f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * indicating matching failure, otherwise. 13146f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */ 13156f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org int32_t matchString(const UnicodeString& text, int32_t start, UCalendarDateFields field, 13166f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org const UnicodeString* stringArray, int32_t stringArrayCount, 13176f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org const UnicodeString* monthPattern, Calendar& cal) const; 13186f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 13196f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org /** 13206f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Private code-size reduction function used by subParse. 13216f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param text the time text being parsed. 13226f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param start where to start parsing. 13236f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param field the date field being parsed. 13246f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param stringArray the string array to parsed. 13256f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param stringArrayCount the size of the array. 13266f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param cal a Calendar set to the date and time to be formatted 13276f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * into a date/time string. 13286f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @return the new start position if matching succeeded; a negative number 13296f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * indicating matching failure, otherwise. 13306f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */ 13316f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org int32_t matchQuarterString(const UnicodeString& text, int32_t start, UCalendarDateFields field, 13326f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org const UnicodeString* stringArray, int32_t stringArrayCount, Calendar& cal) const; 13336f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 13346f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org /** 13356f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Private function used by subParse to match literal pattern text. 13366f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * 13376f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param pattern the pattern string 13386f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param patternOffset the starting offset into the pattern text. On 13396f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * outupt will be set the offset of the first non-literal character in the pattern 13406f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param text the text being parsed 13416f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param textOffset the starting offset into the text. On output 13426f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * will be set to the offset of the character after the match 13436f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param lenient <code>TRUE</code> if the parse is lenient, <code>FALSE</code> otherwise. 13446f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * 13456f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @return <code>TRUE</code> if the literal text could be matched, <code>FALSE</code> otherwise. 13466f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */ 13476f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org static UBool matchLiterals(const UnicodeString &pattern, int32_t &patternOffset, 13486f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org const UnicodeString &text, int32_t &textOffset, UBool lenient); 13496f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 13506f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org /** 13516f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Private member function that converts the parsed date strings into 13526f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * timeFields. Returns -start (for ParsePosition) if failed. 13536f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param text the time text to be parsed. 13546f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param start where to start parsing. 13556f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param ch the pattern character for the date field text to be parsed. 13566f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param count the count of a pattern character. 13576f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param obeyCount if true then the count is strictly obeyed. 13586f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param allowNegative 13596f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param ambiguousYear If true then the two-digit year == the default start year. 13606f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param saveHebrewMonth Used to hang onto month until year is known. 13616f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param cal a Calendar set to the date and time to be formatted 13626f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * into a date/time string. 13636f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param patLoc 13646f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param numericLeapMonthFormatter If non-null, used to parse numeric leap months. 13656f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @return the new start position if matching succeeded; a negative number 13666f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * indicating matching failure, otherwise. 13676f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */ 13686f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org int32_t subParse(const UnicodeString& text, int32_t& start, UChar ch, int32_t count, 13696f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org UBool obeyCount, UBool allowNegative, UBool ambiguousYear[], int32_t& saveHebrewMonth, Calendar& cal, 13706f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org int32_t patLoc, MessageFormat * numericLeapMonthFormatter) const; 13716f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 13726f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org void parseInt(const UnicodeString& text, 13736f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org Formattable& number, 13746f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org ParsePosition& pos, 13756f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org UBool allowNegative, 13766f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org NumberFormat *fmt) const; 13776f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 13786f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org void parseInt(const UnicodeString& text, 13796f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org Formattable& number, 13806f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org int32_t maxDigits, 13816f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org ParsePosition& pos, 13826f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org UBool allowNegative, 13836f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org NumberFormat *fmt) const; 13846f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 13856f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org int32_t checkIntSuffix(const UnicodeString& text, int32_t start, 13866f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org int32_t patLoc, UBool isNegative) const; 13876f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 13886f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org /** 13896f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Translate a pattern, mapping each character in the from string to the 13906f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * corresponding character in the to string. Return an error if the original 13916f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * pattern contains an unmapped character, or if a quote is unmatched. 13926f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Quoted (single quotes only) material is not translated. 13936f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param originalPattern the original pattern. 13946f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param translatedPattern Output param to receive the translited pattern. 13956f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param from the characters to be translited from. 13966f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param to the characters to be translited to. 13976f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param status Receives a status code, which will be U_ZERO_ERROR 13986f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * if the operation succeeds. 13996f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */ 14006f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org static void translatePattern(const UnicodeString& originalPattern, 14016f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org UnicodeString& translatedPattern, 14026f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org const UnicodeString& from, 14036f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org const UnicodeString& to, 14046f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org UErrorCode& status); 14056f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 14066f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org /** 14076f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Sets the starting date of the 100-year window that dates with 2-digit years 14086f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * are considered to fall within. 14096f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param startDate the start date 14106f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param status Receives a status code, which will be U_ZERO_ERROR 14116f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * if the operation succeeds. 14126f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */ 14136f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org void parseAmbiguousDatesAsAfter(UDate startDate, UErrorCode& status); 14146f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 14156f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org /** 14166f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Return the length matched by the given affix, or -1 if none. 14176f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Runs of white space in the affix, match runs of white space in 14186f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * the input. 14196f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param affix pattern string, taken as a literal 14206f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param input input text 14216f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param pos offset into input at which to begin matching 14226f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @return length of input that matches, or -1 if match failure 14236f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */ 14246f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org int32_t compareSimpleAffix(const UnicodeString& affix, 14256f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org const UnicodeString& input, 14266f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org int32_t pos) const; 14276f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 14286f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org /** 14296f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Skip over a run of zero or more Pattern_White_Space characters at 14306f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * pos in text. 14316f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */ 14326f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org int32_t skipPatternWhiteSpace(const UnicodeString& text, int32_t pos) const; 14336f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 14346f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org /** 14356f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Skip over a run of zero or more isUWhiteSpace() characters at pos 14366f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * in text. 14376f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */ 14386f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org int32_t skipUWhiteSpace(const UnicodeString& text, int32_t pos) const; 14396f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 14406f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org /** 14416f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Initialize NumberFormat instances used for numbering system overrides. 14426f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */ 14436f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org void initNumberFormatters(const Locale &locale,UErrorCode &status); 14446f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 14456f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org /** 14466f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Get the numbering system to be used for a particular field. 14476f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */ 14486f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org NumberFormat * getNumberFormatByIndex(UDateFormatField index) const; 14496f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 14506f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org /** 14516f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Parse the given override string and set up structures for number formats 14526f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */ 14536f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org void processOverrideString(const Locale &locale, const UnicodeString &str, int8_t type, UErrorCode &status); 14546f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 14556f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org /** 14566f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Used to map pattern characters to Calendar field identifiers. 14576f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */ 14586f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org static const UCalendarDateFields fgPatternIndexToCalendarField[]; 14596f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 14606f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org /** 14616f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Map index into pattern character string to DateFormat field number 14626f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */ 14636f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org static const UDateFormatField fgPatternIndexToDateFormatField[]; 14646f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 14656f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org /** 14666f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Lazy TimeZoneFormat instantiation, semantically const 14676f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */ 14686f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org TimeZoneFormat *tzFormat() const; 14696f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 14706f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org /** 14716f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Used to map Calendar field to field level. 14726f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * The larger the level, the smaller the field unit. 14736f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * For example, UCAL_ERA level is 0, UCAL_YEAR level is 10, 14746f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * UCAL_MONTH level is 20. 14756f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */ 14766f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org static const int32_t fgCalendarFieldToLevel[]; 14776f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org static const int32_t fgPatternCharToLevel[]; 14786f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 14796f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org /** 14806f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * The formatting pattern for this formatter. 14816f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */ 14826f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org UnicodeString fPattern; 14836f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 14846f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org /** 14856f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * The numbering system override for dates. 14866f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */ 14876f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org UnicodeString fDateOverride; 14886f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 14896f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org /** 14906f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * The numbering system override for times. 14916f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */ 14926f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org UnicodeString fTimeOverride; 14936f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 14946f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 14956f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org /** 14966f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * The original locale used (for reloading symbols) 14976f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */ 14986f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org Locale fLocale; 14996f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 15006f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org /** 15016f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * A pointer to an object containing the strings to use in formatting (e.g., 15026f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * month and day names, AM and PM strings, time zone names, etc.) 15036f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */ 15046f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org DateFormatSymbols* fSymbols; // Owned 15056f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 15066f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org /** 15076f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * The time zone formatter 15086f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */ 15096f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org TimeZoneFormat* fTimeZoneFormat; 15106f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 15116f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org /** 15126f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * If dates have ambiguous years, we map them into the century starting 15136f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * at defaultCenturyStart, which may be any date. If defaultCenturyStart is 15146f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * set to SYSTEM_DEFAULT_CENTURY, which it is by default, then the system 15156f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * values are used. The instance values defaultCenturyStart and 15166f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * defaultCenturyStartYear are only used if explicitly set by the user 15176f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * through the API method parseAmbiguousDatesAsAfter(). 15186f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */ 15196f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org UDate fDefaultCenturyStart; 15206f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 15216f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org /** 15226f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * See documentation for defaultCenturyStart. 15236f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */ 15246f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org /*transient*/ int32_t fDefaultCenturyStartYear; 15256f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 15266f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org int32_t tztype; // here to avoid api change 15276f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 15286f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org typedef struct NSOverride { 15296f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org NumberFormat *nf; 15306f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org int32_t hash; 15316f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org NSOverride *next; 15326f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org } NSOverride; 15336f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 15346f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org NumberFormat **fNumberFormatters; 15356f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 15366f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org NSOverride *fOverrideList; 15376f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 15386f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org UBool fHaveDefaultCentury; 15396f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 15406f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org UDisplayContext fCapitalizationContext; 15416f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org}; 15426f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 15436f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orginline UDate 15446f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgSimpleDateFormat::get2DigitYearStart(UErrorCode& /*status*/) const 15456f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org{ 15466f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org return fDefaultCenturyStart; 15476f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org} 15486f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 15496f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgU_NAMESPACE_END 15506f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 15516f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#endif /* #if !UCONFIG_NO_FORMATTING */ 15526f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 15536f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#endif // _SMPDTFMT 15546f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org//eof 1555