Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(97)

Side by Side Diff: source/test/intltest/dtfmttst.cpp

Issue 845603002: Update ICU to 54.1 step 1 (Closed) Base URL: https://chromium.googlesource.com/chromium/deps/icu.git@master
Patch Set: remove unusued directories Created 5 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « source/test/intltest/dtfmttst.h ('k') | source/test/intltest/dtifmtts.cpp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /******************************************************************** 1 /********************************************************************
2 * COPYRIGHT: 2 * COPYRIGHT:
3 * Copyright (c) 1997-2013, International Business Machines 3 * Copyright (c) 1997-2014, International Business Machines
4 * Corporation and others. All Rights Reserved. 4 * Corporation and others. All Rights Reserved.
5 ********************************************************************/ 5 ********************************************************************/
6 6
7 #include "unicode/utypes.h" 7 #include "unicode/utypes.h"
8 8
9 #if !UCONFIG_NO_FORMATTING 9 #if !UCONFIG_NO_FORMATTING
10 10
11 #include "dtfmttst.h" 11 #include "dtfmttst.h"
12 #include "unicode/localpointer.h" 12 #include "unicode/localpointer.h"
13 #include "unicode/timezone.h" 13 #include "unicode/timezone.h"
14 #include "unicode/gregocal.h" 14 #include "unicode/gregocal.h"
15 #include "unicode/smpdtfmt.h" 15 #include "unicode/smpdtfmt.h"
16 #include "unicode/datefmt.h" 16 #include "unicode/datefmt.h"
17 #include "unicode/dtptngen.h" 17 #include "unicode/dtptngen.h"
18 #include "unicode/simpletz.h" 18 #include "unicode/simpletz.h"
19 #include "unicode/strenum.h" 19 #include "unicode/strenum.h"
20 #include "unicode/dtfmtsym.h" 20 #include "unicode/dtfmtsym.h"
21 #include "cmemory.h" 21 #include "cmemory.h"
22 #include "cstring.h" 22 #include "cstring.h"
23 #include "caltest.h" // for fieldName 23 #include "caltest.h" // for fieldName
24 #include <stdio.h> // for sprintf 24 #include <stdio.h> // for sprintf
25 25
26 #if U_PLATFORM_HAS_WIN32_API 26 #if U_PLATFORM_HAS_WIN32_API
27 #include "windttst.h" 27 #include "windttst.h"
28 #endif 28 #endif
29 29
30 #define LENGTHOF(array) (int32_t)(sizeof(array)/sizeof((array)[0]))
31
32 #define ARRAY_SIZE(array) (sizeof array / sizeof array[0]) 30 #define ARRAY_SIZE(array) (sizeof array / sizeof array[0])
33 31
34 #define ASSERT_OK(status) if(U_FAILURE(status)) {errcheckln(status, #status " = %s @ %s:%d", u_errorName(status), __FILE__, __LINE__); return; } 32 #define ASSERT_OK(status) if(U_FAILURE(status)) {errcheckln(status, #status " = %s @ %s:%d", u_errorName(status), __FILE__, __LINE__); return; }
35 33
36 // ***************************************************************************** 34 // *****************************************************************************
37 // class DateFormatTest 35 // class DateFormatTest
38 // ***************************************************************************** 36 // *****************************************************************************
39 37
40 void DateFormatTest::runIndexedTest( int32_t index, UBool exec, const char* &nam e, char* /*par*/ ) 38 void DateFormatTest::runIndexedTest( int32_t index, UBool exec, const char* &nam e, char* /*par*/ )
41 { 39 {
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after
94 TESTCASE_AUTO(TestParsePosition); 92 TESTCASE_AUTO(TestParsePosition);
95 TESTCASE_AUTO(TestMonthPatterns); 93 TESTCASE_AUTO(TestMonthPatterns);
96 TESTCASE_AUTO(TestContext); 94 TESTCASE_AUTO(TestContext);
97 TESTCASE_AUTO(TestNonGregoFmtParse); 95 TESTCASE_AUTO(TestNonGregoFmtParse);
98 /* 96 /*
99 TESTCASE_AUTO(TestRelativeError); 97 TESTCASE_AUTO(TestRelativeError);
100 TESTCASE_AUTO(TestRelativeOther); 98 TESTCASE_AUTO(TestRelativeOther);
101 */ 99 */
102 TESTCASE_AUTO(TestDotAndAtLeniency); 100 TESTCASE_AUTO(TestDotAndAtLeniency);
103 TESTCASE_AUTO(TestDateFormatLeniency); 101 TESTCASE_AUTO(TestDateFormatLeniency);
102 TESTCASE_AUTO(TestParseMultiPatternMatch);
103
104 TESTCASE_AUTO(TestParseLeniencyAPIs);
105 TESTCASE_AUTO(TestNumberFormatOverride);
106
104 TESTCASE_AUTO_END; 107 TESTCASE_AUTO_END;
105 } 108 }
106 109
107 void DateFormatTest::TestPatterns() { 110 void DateFormatTest::TestPatterns() {
108 static const struct { 111 static const struct {
109 const char *actualPattern; 112 const char *actualPattern;
110 const char *expectedPattern; 113 const char *expectedPattern;
111 const char *localeID; 114 const char *localeID;
112 const char *expectedLocalPattern; 115 const char *expectedLocalPattern;
113 } EXPECTED[] = { 116 } EXPECTED[] = {
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after
157 {UDAT_ABBR_GENERIC_TZ, "v", "en", "v"}, 160 {UDAT_ABBR_GENERIC_TZ, "v", "en", "v"},
158 {UDAT_SPECIFIC_TZ, "zzzz", "en", "zzzz"}, 161 {UDAT_SPECIFIC_TZ, "zzzz", "en", "zzzz"},
159 {UDAT_ABBR_SPECIFIC_TZ, "z", "en", "z"}, 162 {UDAT_ABBR_SPECIFIC_TZ, "z", "en", "z"},
160 {UDAT_ABBR_UTC_TZ, "ZZZZ", "en", "ZZZZ"}, 163 {UDAT_ABBR_UTC_TZ, "ZZZZ", "en", "ZZZZ"},
161 164
162 {UDAT_YEAR_NUM_MONTH_DAY UDAT_ABBR_UTC_TZ, "yMdZZZZ", "en", "M/d/y, ZZZZ "}, 165 {UDAT_YEAR_NUM_MONTH_DAY UDAT_ABBR_UTC_TZ, "yMdZZZZ", "en", "M/d/y, ZZZZ "},
163 {UDAT_MONTH_DAY UDAT_LOCATION_TZ, "MMMMdVVVV", "en", "MMMM d, VVVV"} 166 {UDAT_MONTH_DAY UDAT_LOCATION_TZ, "MMMMdVVVV", "en", "MMMM d, VVVV"}
164 }; 167 };
165 168
166 IcuTestErrorCode errorCode(*this, "TestPatterns()"); 169 IcuTestErrorCode errorCode(*this, "TestPatterns()");
167 for (int32_t i = 0; i < LENGTHOF(EXPECTED); i++) { 170 for (int32_t i = 0; i < UPRV_LENGTHOF(EXPECTED); i++) {
168 // Verify that patterns have the correct values 171 // Verify that patterns have the correct values
169 UnicodeString actualPattern(EXPECTED[i].actualPattern, -1, US_INV); 172 UnicodeString actualPattern(EXPECTED[i].actualPattern, -1, US_INV);
170 UnicodeString expectedPattern(EXPECTED[i].expectedPattern, -1, US_INV); 173 UnicodeString expectedPattern(EXPECTED[i].expectedPattern, -1, US_INV);
171 Locale locale(EXPECTED[i].localeID); 174 Locale locale(EXPECTED[i].localeID);
172 if (actualPattern != expectedPattern) { 175 if (actualPattern != expectedPattern) {
173 errln("FAILURE! Expected pattern: " + expectedPattern + 176 errln("FAILURE! Expected pattern: " + expectedPattern +
174 " but was: " + actualPattern); 177 " but was: " + actualPattern);
175 } 178 }
176 179
177 // Verify that DataFormat instances produced contain the correct 180 // Verify that DataFormat instances produced contain the correct
(...skipping 236 matching lines...) Expand 10 before | Expand all | Expand 10 after
414 } 417 }
415 } 418 }
416 return (s = buf); 419 return (s = buf);
417 } 420 }
418 421
419 // ------------------------------------- 422 // -------------------------------------
420 423
421 /** 424 /**
422 * This MUST be kept in sync with DateFormatSymbols.gPatternChars. 425 * This MUST be kept in sync with DateFormatSymbols.gPatternChars.
423 */ 426 */
424 static const char* PATTERN_CHARS = "GyMdkHmsSEDFwWahKzYeugAZvcLQqVUOXx"; 427 static const char* PATTERN_CHARS = "GyMdkHmsSEDFwWahKzYeugAZvcLQqVUOXxr";
425 428
426 /** 429 /**
427 * A list of the names of all the fields in DateFormat. 430 * A list of the names of all the fields in DateFormat.
428 * This MUST be kept in sync with DateFormat. 431 * This MUST be kept in sync with DateFormat.
429 */ 432 */
430 static const char* DATEFORMAT_FIELD_NAMES[] = { 433 static const char* DATEFORMAT_FIELD_NAMES[] = {
431 "ERA_FIELD", 434 "ERA_FIELD",
432 "YEAR_FIELD", 435 "YEAR_FIELD",
433 "MONTH_FIELD", 436 "MONTH_FIELD",
434 "DATE_FIELD", 437 "DATE_FIELD",
(...skipping 20 matching lines...) Expand all
455 "GENERIC_TIMEZONE_FIELD", 458 "GENERIC_TIMEZONE_FIELD",
456 "STAND_ALONE_DAY_FIELD", 459 "STAND_ALONE_DAY_FIELD",
457 "STAND_ALONE_MONTH_FIELD", 460 "STAND_ALONE_MONTH_FIELD",
458 "QUARTER_FIELD", 461 "QUARTER_FIELD",
459 "STAND_ALONE_QUARTER_FIELD", 462 "STAND_ALONE_QUARTER_FIELD",
460 "TIMEZONE_SPECIAL_FIELD", 463 "TIMEZONE_SPECIAL_FIELD",
461 "YEAR_NAME_FIELD", 464 "YEAR_NAME_FIELD",
462 "TIMEZONE_LOCALIZED_GMT_OFFSET_FIELD", 465 "TIMEZONE_LOCALIZED_GMT_OFFSET_FIELD",
463 "TIMEZONE_ISO_FIELD", 466 "TIMEZONE_ISO_FIELD",
464 "TIMEZONE_ISO_LOCAL_FIELD", 467 "TIMEZONE_ISO_LOCAL_FIELD",
468 "RELATED_YEAR_FIELD",
465 }; 469 };
466 470
467 static const int32_t DATEFORMAT_FIELD_NAMES_LENGTH = 471 static const int32_t DATEFORMAT_FIELD_NAMES_LENGTH =
468 sizeof(DATEFORMAT_FIELD_NAMES) / sizeof(DATEFORMAT_FIELD_NAMES[0]); 472 sizeof(DATEFORMAT_FIELD_NAMES) / sizeof(DATEFORMAT_FIELD_NAMES[0]);
469 473
470 /** 474 /**
471 * Verify that returned field position indices are correct. 475 * Verify that returned field position indices are correct.
472 */ 476 */
473 void DateFormatTest::TestFieldPosition() { 477 void DateFormatTest::TestFieldPosition() {
474 UErrorCode ec = U_ZERO_ERROR; 478 UErrorCode ec = U_ZERO_ERROR;
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
510 return; 514 return;
511 } 515 }
512 UDate aug13 = 871508052513.0; 516 UDate aug13 = 871508052513.0;
513 517
514 // Expected output field values for above DateFormats on aug13 518 // Expected output field values for above DateFormats on aug13
515 // Fields are given in order of DateFormat field number 519 // Fields are given in order of DateFormat field number
516 const char* EXPECTED[] = { 520 const char* EXPECTED[] = {
517 "", "1997", "August", "13", "", "", "34", "12", "", "Wednesday", 521 "", "1997", "August", "13", "", "", "34", "12", "", "Wednesday",
518 "", "", "", "", "PM", "2", "", "Pacific Daylight Time", "", "", 522 "", "", "", "", "PM", "2", "", "Pacific Daylight Time", "", "",
519 "", "", "", "", "", "", "", "", "", "", 523 "", "", "", "", "", "", "", "", "", "",
520 "", "", "", "", 524 "", "", "", "", "",
521 525
522 "", "1997", "ao\\u00FBt", "13", "", "14", "34", "12", "", "mercredi", 526 "", "1997", "ao\\u00FBt", "13", "", "14", "34", "12", "", "mercredi",
523 "", "", "", "", "", "", "", "heure avanc\\u00e9e du Pacifique", "", "", 527 "", "", "", "", "", "", "", "heure d\\u2019\\u00E9t\\u00E9 du Pacifique" , "", "",
524 "", "", "", "", "", "", "", "", "", "", 528 "", "", "", "", "", "", "", "", "", "",
525 "", "", "", "", 529 "", "", "", "", "",
526 530
527 "AD", "1997", "8", "13", "14", "14", "34", "12", "5", "Wed", 531 "AD", "1997", "8", "13", "14", "14", "34", "12", "5", "Wed",
528 "225", "2", "33", "3", "PM", "2", "2", "PDT", "1997", "4", 532 "225", "2", "33", "3", "PM", "2", "2", "PDT", "1997", "4",
529 "1997", "2450674", "52452513", "-0700", "PT", "4", "8", "3", "3", "usla x", 533 "1997", "2450674", "52452513", "-0700", "PT", "4", "8", "3", "3", "usla x",
530 "1997", "GMT-7", "-07", "-07", 534 "1997", "GMT-7", "-07", "-07", "1997",
531 535
532 "Anno Domini", "1997", "August", "0013", "0014", "0014", "0034", "0012", "5130", "Wednesday", 536 "Anno Domini", "1997", "August", "0013", "0014", "0014", "0034", "0012", "5130", "Wednesday",
533 "0225", "0002", "0033", "0003", "PM", "0002", "0002", "Pacific Daylight Time", "1997", "Wednesday", 537 "0225", "0002", "0033", "0003", "PM", "0002", "0002", "Pacific Daylight Time", "1997", "Wednesday",
534 "1997", "2450674", "52452513", "GMT-07:00", "Pacific Time", "Wednesday" , "August", "3rd quarter", "3rd quarter", "Los Angeles Time", 538 "1997", "2450674", "52452513", "GMT-07:00", "Pacific Time", "Wednesday" , "August", "3rd quarter", "3rd quarter", "Los Angeles Time",
535 "1997", "GMT-07:00", "-0700", "-0700", 539 "1997", "GMT-07:00", "-0700", "-0700","1997",
536 }; 540 };
537 541
538 const int32_t EXPECTED_LENGTH = sizeof(EXPECTED)/sizeof(EXPECTED[0]); 542 const int32_t EXPECTED_LENGTH = sizeof(EXPECTED)/sizeof(EXPECTED[0]);
539 543
540 assertTrue("data size", EXPECTED_LENGTH == COUNT * UDAT_FIELD_COUNT); 544 assertTrue("data size", EXPECTED_LENGTH == COUNT * UDAT_FIELD_COUNT);
541 545
542 TimeZone* PT = TimeZone::createTimeZone("America/Los_Angeles"); 546 TimeZone* PT = TimeZone::createTimeZone("America/Los_Angeles");
543 for (j = 0, exp = 0; j < COUNT; ++j) { 547 for (j = 0, exp = 0; j < COUNT; ++j) {
544 // String str; 548 // String str;
545 DateFormat* df = dateFormats[j]; 549 DateFormat* df = dateFormats[j];
(...skipping 575 matching lines...) Expand 10 before | Expand all | Expand 10 after
1121 */ 1125 */
1122 void 1126 void
1123 DateFormatTest::TestTwoDigitYear() 1127 DateFormatTest::TestTwoDigitYear()
1124 { 1128 {
1125 UErrorCode ec = U_ZERO_ERROR; 1129 UErrorCode ec = U_ZERO_ERROR;
1126 SimpleDateFormat fmt("dd/MM/yy", Locale::getUK(), ec); 1130 SimpleDateFormat fmt("dd/MM/yy", Locale::getUK(), ec);
1127 if (U_FAILURE(ec)) { 1131 if (U_FAILURE(ec)) {
1128 dataerrln("FAIL: SimpleDateFormat constructor - %s", u_errorName(ec)); 1132 dataerrln("FAIL: SimpleDateFormat constructor - %s", u_errorName(ec));
1129 return; 1133 return;
1130 } 1134 }
1131 parse2DigitYear(fmt, "5/6/17", date(117, UCAL_JUNE, 5)); 1135 parse2DigitYear(fmt, "5/6/30", date(130, UCAL_JUNE, 5));
1132 parse2DigitYear(fmt, "4/6/34", date(34, UCAL_JUNE, 4)); 1136 parse2DigitYear(fmt, "4/6/50", date(50, UCAL_JUNE, 4));
1133 } 1137 }
1134 1138
1135 // ------------------------------------- 1139 // -------------------------------------
1136 1140
1137 void 1141 void
1138 DateFormatTest::parse2DigitYear(DateFormat& fmt, const char* str, UDate expected ) 1142 DateFormatTest::parse2DigitYear(DateFormat& fmt, const char* str, UDate expected )
1139 { 1143 {
1140 UErrorCode status = U_ZERO_ERROR; 1144 UErrorCode status = U_ZERO_ERROR;
1141 //try { 1145 //try {
1142 UDate d = fmt.parse(str, status); 1146 UDate d = fmt.parse(str, status);
(...skipping 126 matching lines...) Expand 10 before | Expand all | Expand 10 after
1269 * Test the formatting of dates in different locales. 1273 * Test the formatting of dates in different locales.
1270 */ 1274 */
1271 void 1275 void
1272 DateFormatTest::TestLocaleDateFormat() // Bug 495 1276 DateFormatTest::TestLocaleDateFormat() // Bug 495
1273 { 1277 {
1274 UDate testDate = date(97, UCAL_SEPTEMBER, 15); 1278 UDate testDate = date(97, UCAL_SEPTEMBER, 15);
1275 DateFormat *dfFrench = DateFormat::createDateTimeInstance(DateFormat::FULL, 1279 DateFormat *dfFrench = DateFormat::createDateTimeInstance(DateFormat::FULL,
1276 DateFormat::FULL, Locale::getFrench()); 1280 DateFormat::FULL, Locale::getFrench());
1277 DateFormat *dfUS = DateFormat::createDateTimeInstance(DateFormat::FULL, 1281 DateFormat *dfUS = DateFormat::createDateTimeInstance(DateFormat::FULL,
1278 DateFormat::FULL, Locale::getUS()); 1282 DateFormat::FULL, Locale::getUS());
1279 UnicodeString expectedFRENCH ( "lundi 15 septembre 1997 00:00:00 heure avanc \\u00E9e du Pacifique", -1, US_INV ); 1283 UnicodeString expectedFRENCH ( "lundi 15 septembre 1997 00:00:00 heure d\\u2 019\\u00E9t\\u00E9 du Pacifique", -1, US_INV );
1280 expectedFRENCH = expectedFRENCH.unescape(); 1284 expectedFRENCH = expectedFRENCH.unescape();
1281 UnicodeString expectedUS ( "Monday, September 15, 1997 at 12:00:00 AM Pacifi c Daylight Time" ); 1285 UnicodeString expectedUS ( "Monday, September 15, 1997 at 12:00:00 AM Pacifi c Daylight Time" );
1282 logln((UnicodeString)"Date set to : " + dateToString(testDate)); 1286 logln((UnicodeString)"Date set to : " + dateToString(testDate));
1283 UnicodeString out; 1287 UnicodeString out;
1284 if (dfUS == NULL || dfFrench == NULL){ 1288 if (dfUS == NULL || dfFrench == NULL){
1285 dataerrln("Error calling DateFormat::createDateTimeInstance)"); 1289 dataerrln("Error calling DateFormat::createDateTimeInstance)");
1286 delete dfUS; 1290 delete dfUS;
1287 delete dfFrench; 1291 delete dfFrench;
1288 return; 1292 return;
1289 } 1293 }
(...skipping 345 matching lines...) Expand 10 before | Expand all | Expand 10 after
1635 1639
1636 "EEEEEE, MMM d y", "fp", "2013 01 13 0:00:00", "Su, Jan 13 2013", "2013 01 13 0:00:00", 1640 "EEEEEE, MMM d y", "fp", "2013 01 13 0:00:00", "Su, Jan 13 2013", "2013 01 13 0:00:00",
1637 "EEEEEE, MMM d y", "fp", "2013 01 16 0:00:00", "We, Jan 16 2013", "2013 01 16 0:00:00", 1641 "EEEEEE, MMM d y", "fp", "2013 01 16 0:00:00", "We, Jan 16 2013", "2013 01 16 0:00:00",
1638 "EEEEEE d", "fp", "1970 01 17 0:00:00", "Sa 17", "1970 01 17 0:00:00", 1642 "EEEEEE d", "fp", "1970 01 17 0:00:00", "Sa 17", "1970 01 17 0:00:00",
1639 "cccccc d", "fp", "1970 01 17 0:00:00", "Sa 17", "1970 01 17 0:00:00", 1643 "cccccc d", "fp", "1970 01 17 0:00:00", "Sa 17", "1970 01 17 0:00:00",
1640 "cccccc", "fp", "1970 01 03 0:00:00", "Sa", "1970 01 03 0:00:00", 1644 "cccccc", "fp", "1970 01 03 0:00:00", "Sa", "1970 01 03 0:00:00",
1641 }; 1645 };
1642 const char *SV_DATA[] = { 1646 const char *SV_DATA[] = {
1643 "yyyy MM dd HH:mm:ss", 1647 "yyyy MM dd HH:mm:ss",
1644 1648
1645 "EEEEEE d MMM y", "fp", "2013 01 13 0:00:00", "s\\u00F6 13 jan 2013", " 2013 01 13 0:00:00", 1649 "EEEEEE d MMM y", "fp", "2013 01 13 0:00:00", "s\\u00F6 13 jan. 2013", "2013 01 13 0:00:00",
1646 "EEEEEE d MMM y", "fp", "2013 01 16 0:00:00", "on 16 jan 2013", " 2013 01 16 0:00:00", 1650 "EEEEEE d MMM y", "fp", "2013 01 16 0:00:00", "on 16 jan. 2013", "2013 01 16 0:00:00",
1647 "EEEEEE d", "fp", "1970 01 17 0:00:00", "l\\u00F6 17", " 1970 01 17 0:00:00", 1651 "EEEEEE d", "fp", "1970 01 17 0:00:00", "l\\u00F6 17", " 1970 01 17 0:00:00",
1648 "cccccc d", "fp", "1970 01 17 0:00:00", "L\\u00F6 17", " 1970 01 17 0:00:00", 1652 "cccccc d", "fp", "1970 01 17 0:00:00", "L\\u00F6 17", " 1970 01 17 0:00:00",
1649 "cccccc", "fp", "1970 01 03 0:00:00", "L\\u00F6", " 1970 01 03 0:00:00", 1653 "cccccc", "fp", "1970 01 03 0:00:00", "L\\u00F6", " 1970 01 03 0:00:00",
1650 }; 1654 };
1651 expect(EN_DATA, ARRAY_SIZE(EN_DATA), Locale("en", "", "")); 1655 expect(EN_DATA, ARRAY_SIZE(EN_DATA), Locale("en", "", ""));
1652 expect(SV_DATA, ARRAY_SIZE(SV_DATA), Locale("sv", "", "")); 1656 expect(SV_DATA, ARRAY_SIZE(SV_DATA), Locale("sv", "", ""));
1653 } 1657 }
1654 1658
1655 void DateFormatTest::TestNarrowNames() 1659 void DateFormatTest::TestNarrowNames()
1656 { 1660 {
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
1699 "ccccc", "1970 01 06 0:00:00", "T", 1703 "ccccc", "1970 01 06 0:00:00", "T",
1700 "ccccc", "1970 01 07 0:00:00", "W", 1704 "ccccc", "1970 01 07 0:00:00", "W",
1701 "ccccc", "1970 01 01 0:00:00", "T", 1705 "ccccc", "1970 01 01 0:00:00", "T",
1702 "ccccc", "1970 01 02 0:00:00", "F", 1706 "ccccc", "1970 01 02 0:00:00", "F",
1703 "ccccc", "1970 01 03 0:00:00", "S", 1707 "ccccc", "1970 01 03 0:00:00", "S",
1704 }; 1708 };
1705 1709
1706 const char *CS_DATA[] = { 1710 const char *CS_DATA[] = {
1707 "yyyy MM dd HH:mm:ss", 1711 "yyyy MM dd HH:mm:ss",
1708 1712
1709 "yyyy LLLLL dd H:mm:ss", "2004 04 10 16:36:31", "2004 d 10 16:36:31" , 1713 "yyyy LLLLL dd H:mm:ss", "2004 04 10 16:36:31", "2004 4 10 16:36:31" ,
1710 "yyyy MMMMM dd H:mm:ss", "2004 04 10 16:36:31", "2004 4 10 16:36:31" , 1714 "yyyy MMMMM dd H:mm:ss", "2004 04 10 16:36:31", "2004 4 10 16:36:31" ,
1711 1715
1712 "MMMMM", "1970 01 01 0:00:00", "1", 1716 "MMMMM", "1970 01 01 0:00:00", "1",
1713 "MMMMM", "1970 02 01 0:00:00", "2", 1717 "MMMMM", "1970 02 01 0:00:00", "2",
1714 "MMMMM", "1970 03 01 0:00:00", "3", 1718 "MMMMM", "1970 03 01 0:00:00", "3",
1715 "MMMMM", "1970 04 01 0:00:00", "4", 1719 "MMMMM", "1970 04 01 0:00:00", "4",
1716 "MMMMM", "1970 05 01 0:00:00", "5", 1720 "MMMMM", "1970 05 01 0:00:00", "5",
1717 "MMMMM", "1970 06 01 0:00:00", "6", 1721 "MMMMM", "1970 06 01 0:00:00", "6",
1718 "MMMMM", "1970 07 01 0:00:00", "7", 1722 "MMMMM", "1970 07 01 0:00:00", "7",
1719 "MMMMM", "1970 08 01 0:00:00", "8", 1723 "MMMMM", "1970 08 01 0:00:00", "8",
1720 "MMMMM", "1970 09 01 0:00:00", "9", 1724 "MMMMM", "1970 09 01 0:00:00", "9",
1721 "MMMMM", "1970 10 01 0:00:00", "10", 1725 "MMMMM", "1970 10 01 0:00:00", "10",
1722 "MMMMM", "1970 11 01 0:00:00", "11", 1726 "MMMMM", "1970 11 01 0:00:00", "11",
1723 "MMMMM", "1970 12 01 0:00:00", "12", 1727 "MMMMM", "1970 12 01 0:00:00", "12",
1724 1728
1725 "LLLLL", "1970 01 01 0:00:00", "l", 1729 "LLLLL", "1970 01 01 0:00:00", "1",
1726 "LLLLL", "1970 02 01 0:00:00", "\\u00FA", 1730 "LLLLL", "1970 02 01 0:00:00", "2",
1727 "LLLLL", "1970 03 01 0:00:00", "b", 1731 "LLLLL", "1970 03 01 0:00:00", "3",
1728 "LLLLL", "1970 04 01 0:00:00", "d", 1732 "LLLLL", "1970 04 01 0:00:00", "4",
1729 "LLLLL", "1970 05 01 0:00:00", "k", 1733 "LLLLL", "1970 05 01 0:00:00", "5",
1730 "LLLLL", "1970 06 01 0:00:00", "\\u010D", 1734 "LLLLL", "1970 06 01 0:00:00", "6",
1731 "LLLLL", "1970 07 01 0:00:00", "\\u010D", 1735 "LLLLL", "1970 07 01 0:00:00", "7",
1732 "LLLLL", "1970 08 01 0:00:00", "s", 1736 "LLLLL", "1970 08 01 0:00:00", "8",
1733 "LLLLL", "1970 09 01 0:00:00", "z", 1737 "LLLLL", "1970 09 01 0:00:00", "9",
1734 "LLLLL", "1970 10 01 0:00:00", "\\u0159", 1738 "LLLLL", "1970 10 01 0:00:00", "10",
1735 "LLLLL", "1970 11 01 0:00:00", "l", 1739 "LLLLL", "1970 11 01 0:00:00", "11",
1736 "LLLLL", "1970 12 01 0:00:00", "p", 1740 "LLLLL", "1970 12 01 0:00:00", "12",
1737 1741
1738 "EEEEE", "1970 01 04 0:00:00", "N", 1742 "EEEEE", "1970 01 04 0:00:00", "N",
1739 "EEEEE", "1970 01 05 0:00:00", "P", 1743 "EEEEE", "1970 01 05 0:00:00", "P",
1740 "EEEEE", "1970 01 06 0:00:00", "\\u00DA", 1744 "EEEEE", "1970 01 06 0:00:00", "\\u00DA",
1741 "EEEEE", "1970 01 07 0:00:00", "S", 1745 "EEEEE", "1970 01 07 0:00:00", "S",
1742 "EEEEE", "1970 01 01 0:00:00", "\\u010C", 1746 "EEEEE", "1970 01 01 0:00:00", "\\u010C",
1743 "EEEEE", "1970 01 02 0:00:00", "P", 1747 "EEEEE", "1970 01 02 0:00:00", "P",
1744 "EEEEE", "1970 01 03 0:00:00", "S", 1748 "EEEEE", "1970 01 03 0:00:00", "S",
1745 1749
1746 "ccccc", "1970 01 04 0:00:00", "N", 1750 "ccccc", "1970 01 04 0:00:00", "N",
(...skipping 809 matching lines...) Expand 10 before | Expand all | Expand 10 after
2556 { "en", "Asia/Calcutta", "2004-01-15T00:00:00Z", "z", "GMT+5:30", "+5:30 " }, 2560 { "en", "Asia/Calcutta", "2004-01-15T00:00:00Z", "z", "GMT+5:30", "+5:30 " },
2557 { "en", "Asia/Calcutta", "2004-01-15T00:00:00Z", "zzzz", "India Standard Time", "+5:30" }, 2561 { "en", "Asia/Calcutta", "2004-01-15T00:00:00Z", "zzzz", "India Standard Time", "+5:30" },
2558 { "en", "Asia/Calcutta", "2004-07-15T00:00:00Z", "Z", "+0530", "+5:30" } , 2562 { "en", "Asia/Calcutta", "2004-07-15T00:00:00Z", "Z", "+0530", "+5:30" } ,
2559 { "en", "Asia/Calcutta", "2004-07-15T00:00:00Z", "ZZZZ", "GMT+05:30", "+ 5:30" }, 2563 { "en", "Asia/Calcutta", "2004-07-15T00:00:00Z", "ZZZZ", "GMT+05:30", "+ 5:30" },
2560 { "en", "Asia/Calcutta", "2004-07-15T00:00:00Z", "z", "GMT+5:30", "+05:3 0" }, 2564 { "en", "Asia/Calcutta", "2004-07-15T00:00:00Z", "z", "GMT+5:30", "+05:3 0" },
2561 { "en", "Asia/Calcutta", "2004-07-15T00:00:00Z", "zzzz", "India Standard Time", "+5:30" }, 2565 { "en", "Asia/Calcutta", "2004-07-15T00:00:00Z", "zzzz", "India Standard Time", "+5:30" },
2562 { "en", "Asia/Calcutta", "2004-07-15T00:00:00Z", "v", "India Time", "Asi a/Calcutta" }, 2566 { "en", "Asia/Calcutta", "2004-07-15T00:00:00Z", "v", "India Time", "Asi a/Calcutta" },
2563 { "en", "Asia/Calcutta", "2004-07-15T00:00:00Z", "vvvv", "India Standard Time", "Asia/Calcutta" }, 2567 { "en", "Asia/Calcutta", "2004-07-15T00:00:00Z", "vvvv", "India Standard Time", "Asia/Calcutta" },
2564 2568
2565 // Proper CLDR primary zone support #9733 2569 // Proper CLDR primary zone support #9733
2566 { "en", "Asia/Shanghai", "2013-01-01T00:00:00Z", "VVVV", "China Time", " Asia/Shanghai" }, 2570 { "en", "America/Santiago", "2013-01-01T00:00:00Z", "VVVV", "Chile Time" , "America/Santiago" },
2567 { "en", "Asia/Harbin", "2013-01-01T00:00:00Z", "VVVV", "Harbin Time", "A sia/Harbin" }, 2571 { "en", "Pacific/Easter", "2013-01-01T00:00:00Z", "VVVV", "Easter Time", "Pacific/Easter" },
2568 2572
2569 // ========== 2573 // ==========
2570 2574
2571 { "de", "America/Los_Angeles", "2004-01-15T00:00:00Z", "Z", "-0800", "-8 :00" }, 2575 { "de", "America/Los_Angeles", "2004-01-15T00:00:00Z", "Z", "-0800", "-8 :00" },
2572 { "de", "America/Los_Angeles", "2004-01-15T00:00:00Z", "ZZZZ", "GMT-08:0 0", "-8:00" }, 2576 { "de", "America/Los_Angeles", "2004-01-15T00:00:00Z", "ZZZZ", "GMT-08:0 0", "-8:00" },
2573 { "de", "America/Los_Angeles", "2004-01-15T00:00:00Z", "z", "GMT-8", "-8 :00" }, 2577 { "de", "America/Los_Angeles", "2004-01-15T00:00:00Z", "z", "GMT-8", "-8 :00" },
2574 { "de", "America/Los_Angeles", "2004-01-15T00:00:00Z", "zzzz", "Nordamer ikanische Westk\\u00fcsten-Normalzeit", "-8:00" }, 2578 { "de", "America/Los_Angeles", "2004-01-15T00:00:00Z", "zzzz", "Nordamer ikanische Westk\\u00fcsten-Normalzeit", "-8:00" },
2575 { "de", "America/Los_Angeles", "2004-07-15T00:00:00Z", "Z", "-0700", "-7 :00" }, 2579 { "de", "America/Los_Angeles", "2004-07-15T00:00:00Z", "Z", "-0700", "-7 :00" },
2576 { "de", "America/Los_Angeles", "2004-07-15T00:00:00Z", "ZZZZ", "GMT-07:0 0", "-7:00" }, 2580 { "de", "America/Los_Angeles", "2004-07-15T00:00:00Z", "ZZZZ", "GMT-07:0 0", "-7:00" },
2577 { "de", "America/Los_Angeles", "2004-07-15T00:00:00Z", "z", "GMT-7", "-7 :00" }, 2581 { "de", "America/Los_Angeles", "2004-07-15T00:00:00Z", "z", "GMT-7", "-7 :00" },
(...skipping 193 matching lines...) Expand 10 before | Expand all | Expand 10 after
2771 { "zh", "Asia/Calcutta", "2004-01-15T00:00:00Z", "ZZZZ", "GMT+05:30", "+ 5:30" }, 2775 { "zh", "Asia/Calcutta", "2004-01-15T00:00:00Z", "ZZZZ", "GMT+05:30", "+ 5:30" },
2772 { "zh", "Asia/Calcutta", "2004-01-15T00:00:00Z", "z", "GMT+5:30", "+5:30 " }, 2776 { "zh", "Asia/Calcutta", "2004-01-15T00:00:00Z", "z", "GMT+5:30", "+5:30 " },
2773 { "zh", "Asia/Calcutta", "2004-01-15T00:00:00Z", "zzzz", "\\u5370\\u5ea6 \\u65f6\\u95f4", "+5:30" }, 2777 { "zh", "Asia/Calcutta", "2004-01-15T00:00:00Z", "zzzz", "\\u5370\\u5ea6 \\u65f6\\u95f4", "+5:30" },
2774 { "zh", "Asia/Calcutta", "2004-07-15T00:00:00Z", "Z", "+0530", "+5:30" } , 2778 { "zh", "Asia/Calcutta", "2004-07-15T00:00:00Z", "Z", "+0530", "+5:30" } ,
2775 { "zh", "Asia/Calcutta", "2004-07-15T00:00:00Z", "ZZZZ", "GMT+05:30", "+ 5:30" }, 2779 { "zh", "Asia/Calcutta", "2004-07-15T00:00:00Z", "ZZZZ", "GMT+05:30", "+ 5:30" },
2776 { "zh", "Asia/Calcutta", "2004-07-15T00:00:00Z", "z", "GMT+5:30", "+05:3 0" }, 2780 { "zh", "Asia/Calcutta", "2004-07-15T00:00:00Z", "z", "GMT+5:30", "+05:3 0" },
2777 { "zh", "Asia/Calcutta", "2004-07-15T00:00:00Z", "zzzz", "\\u5370\\u5ea6 \\u65f6\\u95f4", "+5:30" }, 2781 { "zh", "Asia/Calcutta", "2004-07-15T00:00:00Z", "zzzz", "\\u5370\\u5ea6 \\u65f6\\u95f4", "+5:30" },
2778 { "zh", "Asia/Calcutta", "2004-07-15T00:00:00Z", "v", "\\u5370\\u5ea6\\u 65f6\\u95f4", "Asia/Calcutta" }, 2782 { "zh", "Asia/Calcutta", "2004-07-15T00:00:00Z", "v", "\\u5370\\u5ea6\\u 65f6\\u95f4", "Asia/Calcutta" },
2779 { "zh", "Asia/Calcutta", "2004-07-15T00:00:00Z", "vvvv", "\\u5370\\u5ea6 \\u65f6\\u95f4", "Asia/Calcutta" }, 2783 { "zh", "Asia/Calcutta", "2004-07-15T00:00:00Z", "vvvv", "\\u5370\\u5ea6 \\u65f6\\u95f4", "Asia/Calcutta" },
2780 2784
2781 // Proper CLDR primary zone support #9733
2782 { "zh", "Asia/Shanghai", "2013-01-01T00:00:00Z", "VVVV", "\\u4e2d\\u56fd \\u65f6\\u95f4", "Asia/Shanghai" },
2783 { "zh", "Asia/Harbin", "2013-01-01T00:00:00Z", "VVVV", "\\u54c8\\u5c14\\ u6ee8\\u65f6\\u95f4", "Asia/Harbin" },
2784
2785 // ========== 2785 // ==========
2786 2786
2787 { "hi", "America/Los_Angeles", "2004-01-15T00:00:00Z", "Z", "-0800", "-8 :00" }, 2787 { "hi", "America/Los_Angeles", "2004-01-15T00:00:00Z", "Z", "-0800", "-8 :00" },
2788 { "hi", "America/Los_Angeles", "2004-01-15T00:00:00Z", "ZZZZ", "GMT-08:0 0", "-8:00" }, 2788 { "hi", "America/Los_Angeles", "2004-01-15T00:00:00Z", "ZZZZ", "GMT-08:0 0", "-8:00" },
2789 { "hi", "America/Los_Angeles", "2004-01-15T00:00:00Z", "z", "GMT-8", "-8 :00" }, 2789 { "hi", "America/Los_Angeles", "2004-01-15T00:00:00Z", "z", "GMT-8", "-8 :00" },
2790 { "hi", "America/Los_Angeles", "2004-01-15T00:00:00Z", "zzzz", "\\u0909\ \u0924\\u094d\\u0924\\u0930\\u0940 \\u0905\\u092e\\u0947\\u0930\\u093f\\u0915\\u 0940 \\u092a\\u094d\\u0930\\u0936\\u093e\\u0902\\u0924 \\u092e\\u093e\\u0928\\u0 915 \\u0938\\u092e\\u092f", "-8:00" }, 2790 { "hi", "America/Los_Angeles", "2004-01-15T00:00:00Z", "zzzz", "\\u0909\ \u0924\\u094d\\u0924\\u0930\\u0940 \\u0905\\u092e\\u0947\\u0930\\u093f\\u0915\\u 0940 \\u092a\\u094d\\u0930\\u0936\\u093e\\u0902\\u0924 \\u092e\\u093e\\u0928\\u0 915 \\u0938\\u092e\\u092f", "-8:00" },
2791 { "hi", "America/Los_Angeles", "2004-07-15T00:00:00Z", "Z", "-0700", "-7 :00" }, 2791 { "hi", "America/Los_Angeles", "2004-07-15T00:00:00Z", "Z", "-0700", "-7 :00" },
2792 { "hi", "America/Los_Angeles", "2004-07-15T00:00:00Z", "ZZZZ", "GMT-07:0 0", "-7:00" }, 2792 { "hi", "America/Los_Angeles", "2004-07-15T00:00:00Z", "ZZZZ", "GMT-07:0 0", "-7:00" },
2793 { "hi", "America/Los_Angeles", "2004-07-15T00:00:00Z", "z", "GMT-7", "-7 :00" }, 2793 { "hi", "America/Los_Angeles", "2004-07-15T00:00:00Z", "z", "GMT-7", "-7 :00" },
2794 { "hi", "America/Los_Angeles", "2004-07-15T00:00:00Z", "zzzz", "\\u0909\ \u0924\\u094d\\u0924\\u0930\\u0940 \\u0905\\u092e\\u0947\\u0930\\u093f\\u0915\\u 0940 \\u092a\\u094d\\u0930\\u0936\\u093e\\u0902\\u0924 \\u0921\\u0947\\u0932\\u0 93e\\u0907\\u091f \\u0938\\u092e\\u092f", "-7:00" }, 2794 { "hi", "America/Los_Angeles", "2004-07-15T00:00:00Z", "zzzz", "\\u0909\ \u0924\\u094d\\u0924\\u0930\\u0940 \\u0905\\u092e\\u0947\\u0930\\u093f\\u0915\\u 0940 \\u092a\\u094d\\u0930\\u0936\\u093e\\u0902\\u0924 \\u0921\\u0947\\u0932\\u0 93e\\u0907\\u091f \\u0938\\u092e\\u092f", "-7:00" },
(...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after
2868 { "hi", "Etc/GMT+3", "2004-07-15T00:00:00Z", "Z", "-0300", "-3:00" }, 2868 { "hi", "Etc/GMT+3", "2004-07-15T00:00:00Z", "Z", "-0300", "-3:00" },
2869 { "hi", "Etc/GMT+3", "2004-07-15T00:00:00Z", "ZZZZ", "GMT-03:00", "-3:00 " }, 2869 { "hi", "Etc/GMT+3", "2004-07-15T00:00:00Z", "ZZZZ", "GMT-03:00", "-3:00 " },
2870 { "hi", "Etc/GMT+3", "2004-07-15T00:00:00Z", "z", "GMT-3", "-3:00" }, 2870 { "hi", "Etc/GMT+3", "2004-07-15T00:00:00Z", "z", "GMT-3", "-3:00" },
2871 { "hi", "Etc/GMT+3", "2004-07-15T00:00:00Z", "zzzz", "GMT-03:00", "-3:00 " }, 2871 { "hi", "Etc/GMT+3", "2004-07-15T00:00:00Z", "zzzz", "GMT-03:00", "-3:00 " },
2872 { "hi", "Etc/GMT+3", "2004-07-15T00:00:00Z", "v", "GMT-3", "-3:00" }, 2872 { "hi", "Etc/GMT+3", "2004-07-15T00:00:00Z", "v", "GMT-3", "-3:00" },
2873 { "hi", "Etc/GMT+3", "2004-07-15T00:00:00Z", "vvvv", "GMT-03:00", "-3:00 " }, 2873 { "hi", "Etc/GMT+3", "2004-07-15T00:00:00Z", "vvvv", "GMT-03:00", "-3:00 " },
2874 2874
2875 { "hi", "Asia/Calcutta", "2004-01-15T00:00:00Z", "Z", "+0530", "+5:30" } , 2875 { "hi", "Asia/Calcutta", "2004-01-15T00:00:00Z", "Z", "+0530", "+5:30" } ,
2876 { "hi", "Asia/Calcutta", "2004-01-15T00:00:00Z", "ZZZZ", "GMT+05:30", "+ 5:30" }, 2876 { "hi", "Asia/Calcutta", "2004-01-15T00:00:00Z", "ZZZZ", "GMT+05:30", "+ 5:30" },
2877 { "hi", "Asia/Calcutta", "2004-01-15T00:00:00Z", "z", "IST", "+5:30" }, 2877 { "hi", "Asia/Calcutta", "2004-01-15T00:00:00Z", "z", "IST", "+5:30" },
2878 { "hi", "Asia/Calcutta", "2004-01-15T00:00:00Z", "zzzz", "\\u092D\\u093E \\u0930\\u0924\\u0940\\u092F \\u0938\\u092E\\u092F", "+5:30" }, 2878 { "hi", "Asia/Calcutta", "2004-01-15T00:00:00Z", "zzzz", "\\u092D\\u093E \\u0930\\u0924\\u0940\\u092F \\u092E\\u093E\\u0928\\u0915 \\u0938\\u092E\\u092F" , "+5:30" },
2879 { "hi", "Asia/Calcutta", "2004-07-15T00:00:00Z", "Z", "+0530", "+5:30" } , 2879 { "hi", "Asia/Calcutta", "2004-07-15T00:00:00Z", "Z", "+0530", "+5:30" } ,
2880 { "hi", "Asia/Calcutta", "2004-07-15T00:00:00Z", "ZZZZ", "GMT+05:30", "+ 5:30" }, 2880 { "hi", "Asia/Calcutta", "2004-07-15T00:00:00Z", "ZZZZ", "GMT+05:30", "+ 5:30" },
2881 { "hi", "Asia/Calcutta", "2004-07-15T00:00:00Z", "z", "IST", "+05:30" }, 2881 { "hi", "Asia/Calcutta", "2004-07-15T00:00:00Z", "z", "IST", "+05:30" },
2882 { "hi", "Asia/Calcutta", "2004-07-15T00:00:00Z", "zzzz", "\\u092D\\u093E \\u0930\\u0924\\u0940\\u092F \\u0938\\u092E\\u092F", "+5:30" }, 2882 { "hi", "Asia/Calcutta", "2004-07-15T00:00:00Z", "zzzz", "\\u092D\\u093E \\u0930\\u0924\\u0940\\u092F \\u092E\\u093E\\u0928\\u0915 \\u0938\\u092E\\u092F" , "+5:30" },
2883 { "hi", "Asia/Calcutta", "2004-07-15T00:00:00Z", "v", "IST", "Asia/Calcu tta" }, 2883 { "hi", "Asia/Calcutta", "2004-07-15T00:00:00Z", "v", "IST", "Asia/Calcu tta" },
2884 { "hi", "Asia/Calcutta", "2004-07-15T00:00:00Z", "vvvv", "\\u092D\\u093E \\u0930\\u0924\\u0940\\u092F \\u0938\\u092E\\u092F", "Asia/Calcutta" }, 2884 { "hi", "Asia/Calcutta", "2004-07-15T00:00:00Z", "vvvv", "\\u092D\\u093E \\u0930\\u0924\\u0940\\u092F \\u092E\\u093E\\u0928\\u0915 \\u0938\\u092E\\u092F" , "Asia/Calcutta" },
2885 2885
2886 // ========== 2886 // ==========
2887 2887
2888 { "bg", "America/Los_Angeles", "2004-01-15T00:00:00Z", "Z", "-0800", "-8 :00" }, 2888 { "bg", "America/Los_Angeles", "2004-01-15T00:00:00Z", "Z", "-0800", "-8 :00" },
2889 { "bg", "America/Los_Angeles", "2004-01-15T00:00:00Z", "ZZZZ", "\\u0413\ \u0440\\u0438\\u0438\\u043D\\u0443\\u0438\\u0447-08:00", "-8:00" }, 2889 { "bg", "America/Los_Angeles", "2004-01-15T00:00:00Z", "ZZZZ", "\\u0413\ \u0440\\u0438\\u043D\\u0443\\u0438\\u0447-08:00", "-8:00" },
2890 { "bg", "America/Los_Angeles", "2004-01-15T00:00:00Z", "z", "\\u0413\\u0 440\\u0438\\u0438\\u043D\\u0443\\u0438\\u0447-8", "America/Los_Angeles" }, 2890 { "bg", "America/Los_Angeles", "2004-01-15T00:00:00Z", "z", "\\u0413\\u0 440\\u0438\\u043D\\u0443\\u0438\\u0447-8", "America/Los_Angeles" },
2891 { "bg", "America/Los_Angeles", "2004-01-15T00:00:00Z", "zzzz", "\\u0421\ \u0435\\u0432\\u0435\\u0440\\u043d\\u043e\\u0430\\u043c\\u0435\\u0440\\u0438\\u0 43a\\u0430\\u043d\\u0441\\u043a\\u043e \\u0442\\u0438\\u0445\\u043e\\u043e\\u043 a\\u0435\\u0430\\u043d\\u0441\\u043a\\u043e \\u0441\\u0442\\u0430\\u043d\\u0434\ \u0430\\u0440\\u0442\\u043d\\u043e \\u0432\\u0440\\u0435\\u043c\\u0435", "Americ a/Los_Angeles" }, 2891 { "bg", "America/Los_Angeles", "2004-01-15T00:00:00Z", "zzzz", "\\u0421\ \u0435\\u0432\\u0435\\u0440\\u043d\\u043e\\u0430\\u043c\\u0435\\u0440\\u0438\\u0 43a\\u0430\\u043d\\u0441\\u043a\\u043e \\u0442\\u0438\\u0445\\u043e\\u043e\\u043 a\\u0435\\u0430\\u043d\\u0441\\u043a\\u043e \\u0441\\u0442\\u0430\\u043d\\u0434\ \u0430\\u0440\\u0442\\u043d\\u043e \\u0432\\u0440\\u0435\\u043c\\u0435", "Americ a/Los_Angeles" },
2892 { "bg", "America/Los_Angeles", "2004-07-15T00:00:00Z", "Z", "-0700", "-7 :00" }, 2892 { "bg", "America/Los_Angeles", "2004-07-15T00:00:00Z", "Z", "-0700", "-7 :00" },
2893 { "bg", "America/Los_Angeles", "2004-07-15T00:00:00Z", "ZZZZ", "\\u0413\ \u0440\\u0438\\u0438\\u043D\\u0443\\u0438\\u0447-07:00", "-7:00" }, 2893 { "bg", "America/Los_Angeles", "2004-07-15T00:00:00Z", "ZZZZ", "\\u0413\ \u0440\\u0438\\u043D\\u0443\\u0438\\u0447-07:00", "-7:00" },
2894 { "bg", "America/Los_Angeles", "2004-07-15T00:00:00Z", "z", "\\u0413\\u0 440\\u0438\\u0438\\u043D\\u0443\\u0438\\u0447-7", "America/Los_Angeles" }, 2894 { "bg", "America/Los_Angeles", "2004-07-15T00:00:00Z", "z", "\\u0413\\u0 440\\u0438\\u043D\\u0443\\u0438\\u0447-7", "America/Los_Angeles" },
2895 { "bg", "America/Los_Angeles", "2004-07-15T00:00:00Z", "zzzz", "\\u0421\ \u0435\\u0432\\u0435\\u0440\\u043d\\u043e\\u0430\\u043c\\u0435\\u0440\\u0438\\u0 43a\\u0430\\u043d\\u0441\\u043a\\u043e \\u0442\\u0438\\u0445\\u043e\\u043e\\u043 a\\u0435\\u0430\\u043d\\u0441\\u043a\\u043e \\u043b\\u044f\\u0442\\u043d\\u043e \\u0447\\u0430\\u0441\\u043e\\u0432\\u043e \\u0432\\u0440\\u0435\\u043c\\u0435", "America/Los_Angeles" }, 2895 { "bg", "America/Los_Angeles", "2004-07-15T00:00:00Z", "zzzz", "\\u0421\ \u0435\\u0432\\u0435\\u0440\\u043d\\u043e\\u0430\\u043c\\u0435\\u0440\\u0438\\u0 43a\\u0430\\u043d\\u0441\\u043a\\u043e \\u0442\\u0438\\u0445\\u043e\\u043e\\u043 a\\u0435\\u0430\\u043d\\u0441\\u043a\\u043e \\u043b\\u044f\\u0442\\u043d\\u043e \\u0447\\u0430\\u0441\\u043e\\u0432\\u043e \\u0432\\u0440\\u0435\\u043c\\u0435", "America/Los_Angeles" },
2896 // icu bg.txt has exemplar city for this time zone 2896 // icu bg.txt has exemplar city for this time zone
2897 { "bg", "America/Los_Angeles", "2004-07-15T00:00:00Z", "v", "\\u041B\\u0 43E\\u0441 \\u0410\\u043D\\u0434\\u0436\\u0435\\u043B\\u0438\\u0441", "America/L os_Angeles" }, 2897 { "bg", "America/Los_Angeles", "2004-07-15T00:00:00Z", "v", "\\u041B\\u0 43E\\u0441 \\u0410\\u043D\\u0434\\u0436\\u0435\\u043B\\u0438\\u0441", "America/L os_Angeles" },
2898 { "bg", "America/Los_Angeles", "2004-07-15T00:00:00Z", "vvvv", "\\u0421\ \u0435\\u0432\\u0435\\u0440\\u043d\\u043e\\u0430\\u043c\\u0435\\u0440\\u0438\\u0 43a\\u0430\\u043d\\u0441\\u043a\\u043e \\u0442\\u0438\\u0445\\u043e\\u043e\\u043 a\\u0435\\u0430\\u043d\\u0441\\u043a\\u043e \\u0432\\u0440\\u0435\\u043c\\u0435" , "America/Los_Angeles" }, 2898 { "bg", "America/Los_Angeles", "2004-07-15T00:00:00Z", "vvvv", "\\u0421\ \u0435\\u0432\\u0435\\u0440\\u043d\\u043e\\u0430\\u043c\\u0435\\u0440\\u0438\\u0 43a\\u0430\\u043d\\u0441\\u043a\\u043e \\u0442\\u0438\\u0445\\u043e\\u043e\\u043 a\\u0435\\u0430\\u043d\\u0441\\u043a\\u043e \\u0432\\u0440\\u0435\\u043c\\u0435" , "America/Los_Angeles" },
2899 { "bg", "America/Los_Angeles", "2004-07-15T00:00:00Z", "VVVV", "\\u041B\ \u043E\\u0441 \\u0410\\u043D\\u0434\\u0436\\u0435\\u043B\\u0438\\u0441", "Americ a/Los_Angeles" }, 2899 { "bg", "America/Los_Angeles", "2004-07-15T00:00:00Z", "VVVV", "\\u041B\ \u043E\\u0441 \\u0410\\u043D\\u0434\\u0436\\u0435\\u043B\\u0438\\u0441", "Americ a/Los_Angeles" },
2900 2900
2901 { "bg", "America/Argentina/Buenos_Aires", "2004-01-15T00:00:00Z", "Z", " -0300", "-3:00" }, 2901 { "bg", "America/Argentina/Buenos_Aires", "2004-01-15T00:00:00Z", "Z", " -0300", "-3:00" },
2902 { "bg", "America/Argentina/Buenos_Aires", "2004-01-15T00:00:00Z", "ZZZZ" , "\\u0413\\u0440\\u0438\\u0438\\u043D\\u0443\\u0438\\u0447-03:00", "-3:00" }, 2902 { "bg", "America/Argentina/Buenos_Aires", "2004-01-15T00:00:00Z", "ZZZZ" , "\\u0413\\u0440\\u0438\\u043D\\u0443\\u0438\\u0447-03:00", "-3:00" },
2903 { "bg", "America/Argentina/Buenos_Aires", "2004-01-15T00:00:00Z", "z", " \\u0413\\u0440\\u0438\\u0438\\u043D\\u0443\\u0438\\u0447-3", "-3:00" }, 2903 { "bg", "America/Argentina/Buenos_Aires", "2004-01-15T00:00:00Z", "z", " \\u0413\\u0440\\u0438\\u043D\\u0443\\u0438\\u0447-3", "-3:00" },
2904 { "bg", "America/Argentina/Buenos_Aires", "2004-01-15T00:00:00Z", "zzzz" , "\\u0410\\u0440\\u0436\\u0435\\u043D\\u0442\\u0438\\u043D\\u0441\\u043a\\u043e \\u0441\\u0442\\u0430\\u043d\\u0434\\u0430\\u0440\\u0442\\u043d\\u043e \\u0432\ \u0440\\u0435\\u043c\\u0435", "-3:00" }, 2904 { "bg", "America/Argentina/Buenos_Aires", "2004-01-15T00:00:00Z", "zzzz" , "\\u0410\\u0440\\u0436\\u0435\\u043D\\u0442\\u0438\\u043D\\u0441\\u043a\\u043e \\u0441\\u0442\\u0430\\u043d\\u0434\\u0430\\u0440\\u0442\\u043d\\u043e \\u0432\ \u0440\\u0435\\u043c\\u0435", "-3:00" },
2905 { "bg", "America/Argentina/Buenos_Aires", "2004-07-15T00:00:00Z", "Z", " -0300", "-3:00" }, 2905 { "bg", "America/Argentina/Buenos_Aires", "2004-07-15T00:00:00Z", "Z", " -0300", "-3:00" },
2906 { "bg", "America/Argentina/Buenos_Aires", "2004-07-15T00:00:00Z", "ZZZZ" , "\\u0413\\u0440\\u0438\\u0438\\u043D\\u0443\\u0438\\u0447-03:00", "-3:00" }, 2906 { "bg", "America/Argentina/Buenos_Aires", "2004-07-15T00:00:00Z", "ZZZZ" , "\\u0413\\u0440\\u0438\\u043D\\u0443\\u0438\\u0447-03:00", "-3:00" },
2907 { "bg", "America/Argentina/Buenos_Aires", "2004-07-15T00:00:00Z", "z", " \\u0413\\u0440\\u0438\\u0438\\u043D\\u0443\\u0438\\u0447-3", "-3:00" }, 2907 { "bg", "America/Argentina/Buenos_Aires", "2004-07-15T00:00:00Z", "z", " \\u0413\\u0440\\u0438\\u043D\\u0443\\u0438\\u0447-3", "-3:00" },
2908 { "bg", "America/Argentina/Buenos_Aires", "2004-07-15T00:00:00Z", "zzzz" , "\\u0410\\u0440\\u0436\\u0435\\u043D\\u0442\\u0438\\u043D\\u0441\\u043a\\u043e \\u0441\\u0442\\u0430\\u043d\\u0434\\u0430\\u0440\\u0442\\u043d\\u043e \\u0432\ \u0440\\u0435\\u043c\\u0435", "-3:00" }, 2908 { "bg", "America/Argentina/Buenos_Aires", "2004-07-15T00:00:00Z", "zzzz" , "\\u0410\\u0440\\u0436\\u0435\\u043D\\u0442\\u0438\\u043D\\u0441\\u043a\\u043e \\u0441\\u0442\\u0430\\u043d\\u0434\\u0430\\u0440\\u0442\\u043d\\u043e \\u0432\ \u0440\\u0435\\u043c\\u0435", "-3:00" },
2909 { "bg", "America/Argentina/Buenos_Aires", "2004-07-15T00:00:00Z", "v", " \\u0411\\u0443\\u0435\\u043D\\u043E\\u0441 \\u0410\\u0439\\u0440\\u0435\\u0441", "America/Buenos_Aires" }, 2909 { "bg", "America/Argentina/Buenos_Aires", "2004-07-15T00:00:00Z", "v", " \\u0411\\u0443\\u0435\\u043D\\u043E\\u0441 \\u0410\\u0439\\u0440\\u0435\\u0441", "America/Buenos_Aires" },
2910 { "bg", "America/Argentina/Buenos_Aires", "2004-07-15T00:00:00Z", "vvvv" , "\\u0410\\u0440\\u0436\\u0435\\u043D\\u0442\\u0438\\u043D\\u0441\\u043a\\u043e \\u0441\\u0442\\u0430\\u043d\\u0434\\u0430\\u0440\\u0442\\u043d\\u043e \\u0432\ \u0440\\u0435\\u043c\\u0435", "America/Buenos_Aires" }, 2910 { "bg", "America/Argentina/Buenos_Aires", "2004-07-15T00:00:00Z", "vvvv" , "\\u0410\\u0440\\u0436\\u0435\\u043D\\u0442\\u0438\\u043D\\u0441\\u043a\\u043e \\u0441\\u0442\\u0430\\u043d\\u0434\\u0430\\u0440\\u0442\\u043d\\u043e \\u0432\ \u0440\\u0435\\u043c\\u0435", "America/Buenos_Aires" },
2911 2911
2912 { "bg", "America/Buenos_Aires", "2004-01-15T00:00:00Z", "Z", "-0300", "- 3:00" }, 2912 { "bg", "America/Buenos_Aires", "2004-01-15T00:00:00Z", "Z", "-0300", "- 3:00" },
2913 { "bg", "America/Buenos_Aires", "2004-01-15T00:00:00Z", "ZZZZ", "\\u0413 \\u0440\\u0438\\u0438\\u043D\\u0443\\u0438\\u0447-03:00", "-3:00" }, 2913 { "bg", "America/Buenos_Aires", "2004-01-15T00:00:00Z", "ZZZZ", "\\u0413 \\u0440\\u0438\\u043D\\u0443\\u0438\\u0447-03:00", "-3:00" },
2914 { "bg", "America/Buenos_Aires", "2004-01-15T00:00:00Z", "z", "\\u0413\\u 0440\\u0438\\u0438\\u043D\\u0443\\u0438\\u0447-3", "-3:00" }, 2914 { "bg", "America/Buenos_Aires", "2004-01-15T00:00:00Z", "z", "\\u0413\\u 0440\\u0438\\u043D\\u0443\\u0438\\u0447-3", "-3:00" },
2915 { "bg", "America/Buenos_Aires", "2004-01-15T00:00:00Z", "zzzz", "\\u0410 \\u0440\\u0436\\u0435\\u043D\\u0442\\u0438\\u043D\\u0441\\u043a\\u043e \\u0441\\ u0442\\u0430\\u043d\\u0434\\u0430\\u0440\\u0442\\u043d\\u043e \\u0432\\u0440\\u0 435\\u043c\\u0435", "-3:00" }, 2915 { "bg", "America/Buenos_Aires", "2004-01-15T00:00:00Z", "zzzz", "\\u0410 \\u0440\\u0436\\u0435\\u043D\\u0442\\u0438\\u043D\\u0441\\u043a\\u043e \\u0441\\ u0442\\u0430\\u043d\\u0434\\u0430\\u0440\\u0442\\u043d\\u043e \\u0432\\u0440\\u0 435\\u043c\\u0435", "-3:00" },
2916 { "bg", "America/Buenos_Aires", "2004-07-15T00:00:00Z", "Z", "-0300", "- 3:00" }, 2916 { "bg", "America/Buenos_Aires", "2004-07-15T00:00:00Z", "Z", "-0300", "- 3:00" },
2917 { "bg", "America/Buenos_Aires", "2004-07-15T00:00:00Z", "ZZZZ", "\\u0413 \\u0440\\u0438\\u0438\\u043D\\u0443\\u0438\\u0447-03:00", "-3:00" }, 2917 { "bg", "America/Buenos_Aires", "2004-07-15T00:00:00Z", "ZZZZ", "\\u0413 \\u0440\\u0438\\u043D\\u0443\\u0438\\u0447-03:00", "-3:00" },
2918 { "bg", "America/Buenos_Aires", "2004-07-15T00:00:00Z", "z", "\\u0413\\u 0440\\u0438\\u0438\\u043D\\u0443\\u0438\\u0447-3", "-3:00" }, 2918 { "bg", "America/Buenos_Aires", "2004-07-15T00:00:00Z", "z", "\\u0413\\u 0440\\u0438\\u043D\\u0443\\u0438\\u0447-3", "-3:00" },
2919 { "bg", "America/Buenos_Aires", "2004-07-15T00:00:00Z", "zzzz", "\\u0410 \\u0440\\u0436\\u0435\\u043D\\u0442\\u0438\\u043D\\u0441\\u043a\\u043e \\u0441\\ u0442\\u0430\\u043d\\u0434\\u0430\\u0440\\u0442\\u043d\\u043e \\u0432\\u0440\\u0 435\\u043c\\u0435", "-3:00" }, 2919 { "bg", "America/Buenos_Aires", "2004-07-15T00:00:00Z", "zzzz", "\\u0410 \\u0440\\u0436\\u0435\\u043D\\u0442\\u0438\\u043D\\u0441\\u043a\\u043e \\u0441\\ u0442\\u0430\\u043d\\u0434\\u0430\\u0440\\u0442\\u043d\\u043e \\u0432\\u0440\\u0 435\\u043c\\u0435", "-3:00" },
2920 // icu bg.txt does not have info for this time zone 2920 // icu bg.txt does not have info for this time zone
2921 { "bg", "America/Buenos_Aires", "2004-07-15T00:00:00Z", "v", "\\u0411\\u 0443\\u0435\\u043D\\u043E\\u0441 \\u0410\\u0439\\u0440\\u0435\\u0441", "America/ Buenos_Aires" }, 2921 { "bg", "America/Buenos_Aires", "2004-07-15T00:00:00Z", "v", "\\u0411\\u 0443\\u0435\\u043D\\u043E\\u0441 \\u0410\\u0439\\u0440\\u0435\\u0441", "America/ Buenos_Aires" },
2922 { "bg", "America/Buenos_Aires", "2004-07-15T00:00:00Z", "vvvv", "\\u0410 \\u0440\\u0436\\u0435\\u043D\\u0442\\u0438\\u043D\\u0441\\u043a\\u043e \\u0441\\ u0442\\u0430\\u043d\\u0434\\u0430\\u0440\\u0442\\u043d\\u043e \\u0432\\u0440\\u0 435\\u043c\\u0435", "America/Buenos_Aires" }, 2922 { "bg", "America/Buenos_Aires", "2004-07-15T00:00:00Z", "vvvv", "\\u0410 \\u0440\\u0436\\u0435\\u043D\\u0442\\u0438\\u043D\\u0441\\u043a\\u043e \\u0441\\ u0442\\u0430\\u043d\\u0434\\u0430\\u0440\\u0442\\u043d\\u043e \\u0432\\u0440\\u0 435\\u043c\\u0435", "America/Buenos_Aires" },
2923 2923
2924 { "bg", "America/Havana", "2004-01-15T00:00:00Z", "Z", "-0500", "-5:00" }, 2924 { "bg", "America/Havana", "2004-01-15T00:00:00Z", "Z", "-0500", "-5:00" },
2925 { "bg", "America/Havana", "2004-01-15T00:00:00Z", "ZZZZ", "\\u0413\\u044 0\\u0438\\u0438\\u043D\\u0443\\u0438\\u0447-05:00", "-5:00" }, 2925 { "bg", "America/Havana", "2004-01-15T00:00:00Z", "ZZZZ", "\\u0413\\u044 0\\u0438\\u043D\\u0443\\u0438\\u0447-05:00", "-5:00" },
2926 { "bg", "America/Havana", "2004-01-15T00:00:00Z", "z", "\\u0413\\u0440\\ u0438\\u0438\\u043D\\u0443\\u0438\\u0447-5", "-5:00" }, 2926 { "bg", "America/Havana", "2004-01-15T00:00:00Z", "z", "\\u0413\\u0440\\ u0438\\u043D\\u0443\\u0438\\u0447-5", "-5:00" },
2927 { "bg", "America/Havana", "2004-01-15T00:00:00Z", "zzzz", "\\u041a\\u044 3\\u0431\\u0438\\u043d\\u0441\\u043a\\u043e \\u0441\\u0442\\u0430\\u043d\\u0434\ \u0430\\u0440\\u0442\\u043d\\u043e \\u0432\\u0440\\u0435\\u043c\\u0435", "-5:00" }, 2927 { "bg", "America/Havana", "2004-01-15T00:00:00Z", "zzzz", "\\u041a\\u044 3\\u0431\\u0438\\u043d\\u0441\\u043a\\u043e \\u0441\\u0442\\u0430\\u043d\\u0434\ \u0430\\u0440\\u0442\\u043d\\u043e \\u0432\\u0440\\u0435\\u043c\\u0435", "-5:00" },
2928 { "bg", "America/Havana", "2004-07-15T00:00:00Z", "Z", "-0400", "-4:00" }, 2928 { "bg", "America/Havana", "2004-07-15T00:00:00Z", "Z", "-0400", "-4:00" },
2929 { "bg", "America/Havana", "2004-07-15T00:00:00Z", "ZZZZ", "\\u0413\\u044 0\\u0438\\u0438\\u043D\\u0443\\u0438\\u0447-04:00", "-4:00" }, 2929 { "bg", "America/Havana", "2004-07-15T00:00:00Z", "ZZZZ", "\\u0413\\u044 0\\u0438\\u043D\\u0443\\u0438\\u0447-04:00", "-4:00" },
2930 { "bg", "America/Havana", "2004-07-15T00:00:00Z", "z", "\\u0413\\u0440\\ u0438\\u0438\\u043D\\u0443\\u0438\\u0447-4", "-4:00" }, 2930 { "bg", "America/Havana", "2004-07-15T00:00:00Z", "z", "\\u0413\\u0440\\ u0438\\u043D\\u0443\\u0438\\u0447-4", "-4:00" },
2931 { "bg", "America/Havana", "2004-07-15T00:00:00Z", "zzzz", "\\u041a\\u044 3\\u0431\\u0438\\u043d\\u0441\\u043a\\u043e \\u043b\\u044f\\u0442\\u043d\\u043e \\u0447\\u0430\\u0441\\u043e\\u0432\\u043e \\u0432\\u0440\\u0435\\u043c\\u0435", "-4:00" }, 2931 { "bg", "America/Havana", "2004-07-15T00:00:00Z", "zzzz", "\\u041a\\u044 3\\u0431\\u0438\\u043d\\u0441\\u043a\\u043e \\u043b\\u044f\\u0442\\u043d\\u043e \\u0447\\u0430\\u0441\\u043e\\u0432\\u043e \\u0432\\u0440\\u0435\\u043c\\u0435", "-4:00" },
2932 { "bg", "America/Havana", "2004-07-15T00:00:00Z", "v", "\\u041a\\u0443\\ u0431\\u0430", "America/Havana" }, 2932 { "bg", "America/Havana", "2004-07-15T00:00:00Z", "v", "\\u041a\\u0443\\ u0431\\u0430", "America/Havana" },
2933 { "bg", "America/Havana", "2004-07-15T00:00:00Z", "vvvv", "\\u041a\\u044 3\\u0431\\u0438\\u043d\\u0441\\u043a\\u043e \\u0432\\u0440\\u0435\\u043C\\u0435" , "America/Havana" }, 2933 { "bg", "America/Havana", "2004-07-15T00:00:00Z", "vvvv", "\\u041a\\u044 3\\u0431\\u0438\\u043d\\u0441\\u043a\\u043e \\u0432\\u0440\\u0435\\u043C\\u0435" , "America/Havana" },
2934 2934
2935 { "bg", "Australia/ACT", "2004-01-15T00:00:00Z", "Z", "+1100", "+11:00" }, 2935 { "bg", "Australia/ACT", "2004-01-15T00:00:00Z", "Z", "+1100", "+11:00" },
2936 { "bg", "Australia/ACT", "2004-01-15T00:00:00Z", "ZZZZ", "\\u0413\\u0440 \\u0438\\u0438\\u043D\\u0443\\u0438\\u0447+11:00", "+11:00" }, 2936 { "bg", "Australia/ACT", "2004-01-15T00:00:00Z", "ZZZZ", "\\u0413\\u0440 \\u0438\\u043D\\u0443\\u0438\\u0447+11:00", "+11:00" },
2937 { "bg", "Australia/ACT", "2004-01-15T00:00:00Z", "z", "\\u0413\\u0440\\u 0438\\u0438\\u043D\\u0443\\u0438\\u0447+11", "+11:00" }, 2937 { "bg", "Australia/ACT", "2004-01-15T00:00:00Z", "z", "\\u0413\\u0440\\u 0438\\u043D\\u0443\\u0438\\u0447+11", "+11:00" },
2938 { "bg", "Australia/ACT", "2004-01-15T00:00:00Z", "zzzz", "\\u0410\\u0432 \\u0441\\u0442\\u0440\\u0430\\u043B\\u0438\\u044F \\u2013 \\u0438\\u0437\\u0442\ \u043E\\u0447\\u043D\\u043E \\u043B\\u044F\\u0442\\u043D\\u043E \\u0447\\u0430\\ u0441\\u043E\\u0432\\u043E \\u0432\\u0440\\u0435\\u043C\\u0435", "+11:00" }, 2938 { "bg", "Australia/ACT", "2004-01-15T00:00:00Z", "zzzz", "\\u0410\\u0432 \\u0441\\u0442\\u0440\\u0430\\u043B\\u0438\\u044F \\u2013 \\u0438\\u0437\\u0442\ \u043E\\u0447\\u043D\\u043E \\u043B\\u044F\\u0442\\u043D\\u043E \\u0447\\u0430\\ u0441\\u043E\\u0432\\u043E \\u0432\\u0440\\u0435\\u043C\\u0435", "+11:00" },
2939 { "bg", "Australia/ACT", "2004-07-15T00:00:00Z", "Z", "+1000", "+10:00" }, 2939 { "bg", "Australia/ACT", "2004-07-15T00:00:00Z", "Z", "+1000", "+10:00" },
2940 { "bg", "Australia/ACT", "2004-07-15T00:00:00Z", "ZZZZ", "\\u0413\\u0440 \\u0438\\u0438\\u043D\\u0443\\u0438\\u0447+10:00", "+10:00" }, 2940 { "bg", "Australia/ACT", "2004-07-15T00:00:00Z", "ZZZZ", "\\u0413\\u0440 \\u0438\\u043D\\u0443\\u0438\\u0447+10:00", "+10:00" },
2941 { "bg", "Australia/ACT", "2004-07-15T00:00:00Z", "z", "\\u0413\\u0440\\u 0438\\u0438\\u043D\\u0443\\u0438\\u0447+10", "+10:00" }, 2941 { "bg", "Australia/ACT", "2004-07-15T00:00:00Z", "z", "\\u0413\\u0440\\u 0438\\u043D\\u0443\\u0438\\u0447+10", "+10:00" },
2942 { "bg", "Australia/ACT", "2004-07-15T00:00:00Z", "zzzz", "\\u0410\\u0432 \\u0441\\u0442\\u0440\\u0430\\u043B\\u0438\\u044F \\u2013 \\u0438\\u0437\\u0442\ \u043E\\u0447\\u043D\\u043E \\u0441\\u0442\\u0430\\u043D\\u0434\\u0430\\u0440\\u 0442\\u043D\\u043E \\u0432\\u0440\\u0435\\u043C\\u0435", "+10:00" }, 2942 { "bg", "Australia/ACT", "2004-07-15T00:00:00Z", "zzzz", "\\u0410\\u0432 \\u0441\\u0442\\u0440\\u0430\\u043B\\u0438\\u044F \\u2013 \\u0438\\u0437\\u0442\ \u043E\\u0447\\u043D\\u043E \\u0441\\u0442\\u0430\\u043D\\u0434\\u0430\\u0440\\u 0442\\u043D\\u043E \\u0432\\u0440\\u0435\\u043C\\u0435", "+10:00" },
2943 { "bg", "Australia/ACT", "2004-07-15T00:00:00Z", "v", "\\u0421\\u0438\\u 0434\\u043D\\u0438", "Australia/Sydney" }, 2943 { "bg", "Australia/ACT", "2004-07-15T00:00:00Z", "v", "\\u0421\\u0438\\u 0434\\u043D\\u0438", "Australia/Sydney" },
2944 { "bg", "Australia/ACT", "2004-07-15T00:00:00Z", "vvvv", "\\u0410\\u0432 \\u0441\\u0442\\u0440\\u0430\\u043B\\u0438\\u044F \\u2013 \\u0438\\u0437\\u0442\ \u043E\\u0447\\u043D\\u043E \\u0432\\u0440\\u0435\\u043C\\u0435", "Australia/Syd ney" }, 2944 { "bg", "Australia/ACT", "2004-07-15T00:00:00Z", "vvvv", "\\u0410\\u0432 \\u0441\\u0442\\u0440\\u0430\\u043B\\u0438\\u044F \\u2013 \\u0438\\u0437\\u0442\ \u043E\\u0447\\u043D\\u043E \\u0432\\u0440\\u0435\\u043C\\u0435", "Australia/Syd ney" },
2945 2945
2946 { "bg", "Australia/Sydney", "2004-01-15T00:00:00Z", "Z", "+1100", "+11:0 0" }, 2946 { "bg", "Australia/Sydney", "2004-01-15T00:00:00Z", "Z", "+1100", "+11:0 0" },
2947 { "bg", "Australia/Sydney", "2004-01-15T00:00:00Z", "ZZZZ", "\\u0413\\u0 440\\u0438\\u0438\\u043D\\u0443\\u0438\\u0447+11:00", "+11:00" }, 2947 { "bg", "Australia/Sydney", "2004-01-15T00:00:00Z", "ZZZZ", "\\u0413\\u0 440\\u0438\\u043D\\u0443\\u0438\\u0447+11:00", "+11:00" },
2948 { "bg", "Australia/Sydney", "2004-01-15T00:00:00Z", "z", "\\u0413\\u0440 \\u0438\\u0438\\u043D\\u0443\\u0438\\u0447+11", "+11:00" }, 2948 { "bg", "Australia/Sydney", "2004-01-15T00:00:00Z", "z", "\\u0413\\u0440 \\u0438\\u043D\\u0443\\u0438\\u0447+11", "+11:00" },
2949 { "bg", "Australia/Sydney", "2004-01-15T00:00:00Z", "zzzz", "\\u0410\\u0 432\\u0441\\u0442\\u0440\\u0430\\u043B\\u0438\\u044F \\u2013 \\u0438\\u0437\\u04 42\\u043E\\u0447\\u043D\\u043E \\u043B\\u044F\\u0442\\u043D\\u043E \\u0447\\u043 0\\u0441\\u043E\\u0432\\u043E \\u0432\\u0440\\u0435\\u043C\\u0435", "+11:00" }, 2949 { "bg", "Australia/Sydney", "2004-01-15T00:00:00Z", "zzzz", "\\u0410\\u0 432\\u0441\\u0442\\u0440\\u0430\\u043B\\u0438\\u044F \\u2013 \\u0438\\u0437\\u04 42\\u043E\\u0447\\u043D\\u043E \\u043B\\u044F\\u0442\\u043D\\u043E \\u0447\\u043 0\\u0441\\u043E\\u0432\\u043E \\u0432\\u0440\\u0435\\u043C\\u0435", "+11:00" },
2950 { "bg", "Australia/Sydney", "2004-07-15T00:00:00Z", "Z", "+1000", "+10:0 0" }, 2950 { "bg", "Australia/Sydney", "2004-07-15T00:00:00Z", "Z", "+1000", "+10:0 0" },
2951 { "bg", "Australia/Sydney", "2004-07-15T00:00:00Z", "ZZZZ", "\\u0413\\u0 440\\u0438\\u0438\\u043D\\u0443\\u0438\\u0447+10:00", "+10:00" }, 2951 { "bg", "Australia/Sydney", "2004-07-15T00:00:00Z", "ZZZZ", "\\u0413\\u0 440\\u0438\\u043D\\u0443\\u0438\\u0447+10:00", "+10:00" },
2952 { "bg", "Australia/Sydney", "2004-07-15T00:00:00Z", "z", "\\u0413\\u0440 \\u0438\\u0438\\u043D\\u0443\\u0438\\u0447+10", "+10:00" }, 2952 { "bg", "Australia/Sydney", "2004-07-15T00:00:00Z", "z", "\\u0413\\u0440 \\u0438\\u043D\\u0443\\u0438\\u0447+10", "+10:00" },
2953 { "bg", "Australia/Sydney", "2004-07-15T00:00:00Z", "zzzz", "\\u0410\\u0 432\\u0441\\u0442\\u0440\\u0430\\u043B\\u0438\\u044F \\u2013 \\u0438\\u0437\\u04 42\\u043E\\u0447\\u043D\\u043E \\u0441\\u0442\\u0430\\u043D\\u0434\\u0430\\u0440 \\u0442\\u043D\\u043E \\u0432\\u0440\\u0435\\u043C\\u0435", "+10:00" }, 2953 { "bg", "Australia/Sydney", "2004-07-15T00:00:00Z", "zzzz", "\\u0410\\u0 432\\u0441\\u0442\\u0440\\u0430\\u043B\\u0438\\u044F \\u2013 \\u0438\\u0437\\u04 42\\u043E\\u0447\\u043D\\u043E \\u0441\\u0442\\u0430\\u043D\\u0434\\u0430\\u0440 \\u0442\\u043D\\u043E \\u0432\\u0440\\u0435\\u043C\\u0435", "+10:00" },
2954 { "bg", "Australia/Sydney", "2004-07-15T00:00:00Z", "v", "\\u0421\\u0438 \\u0434\\u043D\\u0438", "Australia/Sydney" }, 2954 { "bg", "Australia/Sydney", "2004-07-15T00:00:00Z", "v", "\\u0421\\u0438 \\u0434\\u043D\\u0438", "Australia/Sydney" },
2955 { "bg", "Australia/Sydney", "2004-07-15T00:00:00Z", "vvvv", "\\u0410\\u0 432\\u0441\\u0442\\u0440\\u0430\\u043B\\u0438\\u044F \\u2013 \\u0438\\u0437\\u04 42\\u043E\\u0447\\u043D\\u043E \\u0432\\u0440\\u0435\\u043C\\u0435", "Australia/ Sydney" }, 2955 { "bg", "Australia/Sydney", "2004-07-15T00:00:00Z", "vvvv", "\\u0410\\u0 432\\u0441\\u0442\\u0440\\u0430\\u043B\\u0438\\u044F \\u2013 \\u0438\\u0437\\u04 42\\u043E\\u0447\\u043D\\u043E \\u0432\\u0440\\u0435\\u043C\\u0435", "Australia/ Sydney" },
2956 2956
2957 { "bg", "Europe/London", "2004-01-15T00:00:00Z", "Z", "+0000", "+0:00" } , 2957 { "bg", "Europe/London", "2004-01-15T00:00:00Z", "Z", "+0000", "+0:00" } ,
2958 { "bg", "Europe/London", "2004-01-15T00:00:00Z", "ZZZZ", "\\u0413\\u0440 \\u0438\\u0438\\u043D\\u0443\\u0438\\u0447", "+0:00" }, 2958 { "bg", "Europe/London", "2004-01-15T00:00:00Z", "ZZZZ", "\\u0413\\u0440 \\u0438\\u043D\\u0443\\u0438\\u0447", "+0:00" },
2959 { "bg", "Europe/London", "2004-01-15T00:00:00Z", "z", "\\u0413\\u0440\\u 0438\\u0438\\u043D\\u0443\\u0438\\u0447", "+0:00" }, 2959 { "bg", "Europe/London", "2004-01-15T00:00:00Z", "z", "\\u0413\\u0440\\u 0438\\u043D\\u0443\\u0438\\u0447", "+0:00" },
2960 { "bg", "Europe/London", "2004-01-15T00:00:00Z", "zzzz", "\\u0421\\u0440 \\u0435\\u0434\\u043d\\u043e \\u0433\\u0440\\u0438\\u043d\\u0443\\u0438\\u0447\\ u043a\\u043e \\u0432\\u0440\\u0435\\u043c\\u0435", "+0:00" }, 2960 { "bg", "Europe/London", "2004-01-15T00:00:00Z", "zzzz", "\\u0421\\u0440 \\u0435\\u0434\\u043d\\u043e \\u0433\\u0440\\u0438\\u043d\\u0443\\u0438\\u0447\\ u043a\\u043e \\u0432\\u0440\\u0435\\u043c\\u0435", "+0:00" },
2961 { "bg", "Europe/London", "2004-07-15T00:00:00Z", "Z", "+0100", "+1:00" } , 2961 { "bg", "Europe/London", "2004-07-15T00:00:00Z", "Z", "+0100", "+1:00" } ,
2962 { "bg", "Europe/London", "2004-07-15T00:00:00Z", "ZZZZ", "\\u0413\\u0440 \\u0438\\u0438\\u043D\\u0443\\u0438\\u0447+01:00", "+1:00" }, 2962 { "bg", "Europe/London", "2004-07-15T00:00:00Z", "ZZZZ", "\\u0413\\u0440 \\u0438\\u043D\\u0443\\u0438\\u0447+01:00", "+1:00" },
2963 { "bg", "Europe/London", "2004-07-15T00:00:00Z", "z", "\\u0413\\u0440\\u 0438\\u0438\\u043D\\u0443\\u0438\\u0447+1", "+1:00" }, 2963 { "bg", "Europe/London", "2004-07-15T00:00:00Z", "z", "\\u0413\\u0440\\u 0438\\u043D\\u0443\\u0438\\u0447+1", "+1:00" },
2964 { "bg", "Europe/London", "2004-07-15T00:00:00Z", "zzzz", "\\u0411\\u0440 \\u0438\\u0442\\u0430\\u043d\\u0441\\u043a\\u043e \\u043b\\u044f\\u0442\\u043d\\ u043e \\u0447\\u0430\\u0441\\u043e\\u0432\\u043e \\u0432\\u0440\\u0435\\u043c\\u 0435", "+1:00" }, 2964 { "bg", "Europe/London", "2004-07-15T00:00:00Z", "zzzz", "\\u0411\\u0440 \\u0438\\u0442\\u0430\\u043d\\u0441\\u043a\\u043e \\u043b\\u044f\\u0442\\u043d\\ u043e \\u0447\\u0430\\u0441\\u043e\\u0432\\u043e \\u0432\\u0440\\u0435\\u043c\\u 0435", "+1:00" },
2965 { "bg", "Europe/London", "2004-07-15T00:00:00Z", "v", "\\u0412\\u0435\\u 043b\\u0438\\u043a\\u043e\\u0431\\u0440\\u0438\\u0442\\u0430\\u043d\\u0438\\u044 f", "Europe/London" }, 2965 { "bg", "Europe/London", "2004-07-15T00:00:00Z", "v", "\\u0412\\u0435\\u 043b\\u0438\\u043a\\u043e\\u0431\\u0440\\u0438\\u0442\\u0430\\u043d\\u0438\\u044 f", "Europe/London" },
2966 { "bg", "Europe/London", "2004-07-15T00:00:00Z", "vvvv", "\\u0412\\u0435 \\u043b\\u0438\\u043a\\u043e\\u0431\\u0440\\u0438\\u0442\\u0430\\u043d\\u0438\\u 044f", "Europe/London" }, 2966 { "bg", "Europe/London", "2004-07-15T00:00:00Z", "vvvv", "\\u0412\\u0435 \\u043b\\u0438\\u043a\\u043e\\u0431\\u0440\\u0438\\u0442\\u0430\\u043d\\u0438\\u 044f", "Europe/London" },
2967 2967
2968 { "bg", "Etc/GMT+3", "2004-01-15T00:00:00Z", "Z", "-0300", "-3:00" }, 2968 { "bg", "Etc/GMT+3", "2004-01-15T00:00:00Z", "Z", "-0300", "-3:00" },
2969 { "bg", "Etc/GMT+3", "2004-01-15T00:00:00Z", "ZZZZ", "\\u0413\\u0440\\u0 438\\u0438\\u043D\\u0443\\u0438\\u0447-03:00", "-3:00" }, 2969 { "bg", "Etc/GMT+3", "2004-01-15T00:00:00Z", "ZZZZ", "\\u0413\\u0440\\u0 438\\u043D\\u0443\\u0438\\u0447-03:00", "-3:00" },
2970 { "bg", "Etc/GMT+3", "2004-01-15T00:00:00Z", "z", "\\u0413\\u0440\\u0438 \\u0438\\u043D\\u0443\\u0438\\u0447-3", "-3:00" }, 2970 { "bg", "Etc/GMT+3", "2004-01-15T00:00:00Z", "z", "\\u0413\\u0440\\u0438 \\u043D\\u0443\\u0438\\u0447-3", "-3:00" },
2971 { "bg", "Etc/GMT+3", "2004-01-15T00:00:00Z", "zzzz", "\\u0413\\u0440\\u0 438\\u0438\\u043D\\u0443\\u0438\\u0447-03:00", "-3:00" }, 2971 { "bg", "Etc/GMT+3", "2004-01-15T00:00:00Z", "zzzz", "\\u0413\\u0440\\u0 438\\u043D\\u0443\\u0438\\u0447-03:00", "-3:00" },
2972 { "bg", "Etc/GMT+3", "2004-07-15T00:00:00Z", "Z", "-0300", "-3:00" }, 2972 { "bg", "Etc/GMT+3", "2004-07-15T00:00:00Z", "Z", "-0300", "-3:00" },
2973 { "bg", "Etc/GMT+3", "2004-07-15T00:00:00Z", "ZZZZ", "\\u0413\\u0440\\u0 438\\u0438\\u043D\\u0443\\u0438\\u0447-03:00", "-3:00" }, 2973 { "bg", "Etc/GMT+3", "2004-07-15T00:00:00Z", "ZZZZ", "\\u0413\\u0440\\u0 438\\u043D\\u0443\\u0438\\u0447-03:00", "-3:00" },
2974 { "bg", "Etc/GMT+3", "2004-07-15T00:00:00Z", "z", "\\u0413\\u0440\\u0438 \\u0438\\u043D\\u0443\\u0438\\u0447-3", "-3:00" }, 2974 { "bg", "Etc/GMT+3", "2004-07-15T00:00:00Z", "z", "\\u0413\\u0440\\u0438 \\u043D\\u0443\\u0438\\u0447-3", "-3:00" },
2975 { "bg", "Etc/GMT+3", "2004-07-15T00:00:00Z", "zzzz", "\\u0413\\u0440\\u0 438\\u0438\\u043D\\u0443\\u0438\\u0447-03:00", "-3:00" }, 2975 { "bg", "Etc/GMT+3", "2004-07-15T00:00:00Z", "zzzz", "\\u0413\\u0440\\u0 438\\u043D\\u0443\\u0438\\u0447-03:00", "-3:00" },
2976 { "bg", "Etc/GMT+3", "2004-07-15T00:00:00Z", "v", "\\u0413\\u0440\\u0438 \\u0438\\u043D\\u0443\\u0438\\u0447-3", "-3:00" }, 2976 { "bg", "Etc/GMT+3", "2004-07-15T00:00:00Z", "v", "\\u0413\\u0440\\u0438 \\u043D\\u0443\\u0438\\u0447-3", "-3:00" },
2977 { "bg", "Etc/GMT+3", "2004-07-15T00:00:00Z", "vvvv", "\\u0413\\u0440\\u0 438\\u0438\\u043D\\u0443\\u0438\\u0447-03:00", "-3:00" }, 2977 { "bg", "Etc/GMT+3", "2004-07-15T00:00:00Z", "vvvv", "\\u0413\\u0440\\u0 438\\u043D\\u0443\\u0438\\u0447-03:00", "-3:00" },
2978 2978
2979 // JB#5150 2979 // JB#5150
2980 { "bg", "Asia/Calcutta", "2004-01-15T00:00:00Z", "Z", "+0530", "+5:30" } , 2980 { "bg", "Asia/Calcutta", "2004-01-15T00:00:00Z", "Z", "+0530", "+5:30" } ,
2981 { "bg", "Asia/Calcutta", "2004-01-15T00:00:00Z", "ZZZZ", "\\u0413\\u0440 \\u0438\\u0438\\u043D\\u0443\\u0438\\u0447+05:30", "+5:30" }, 2981 { "bg", "Asia/Calcutta", "2004-01-15T00:00:00Z", "ZZZZ", "\\u0413\\u0440 \\u0438\\u043D\\u0443\\u0438\\u0447+05:30", "+5:30" },
2982 { "bg", "Asia/Calcutta", "2004-01-15T00:00:00Z", "z", "\\u0413\\u0440\\u 0438\\u0438\\u043D\\u0443\\u0438\\u0447+5:30", "+5:30" }, 2982 { "bg", "Asia/Calcutta", "2004-01-15T00:00:00Z", "z", "\\u0413\\u0440\\u 0438\\u043D\\u0443\\u0438\\u0447+5:30", "+5:30" },
2983 { "bg", "Asia/Calcutta", "2004-01-15T00:00:00Z", "zzzz", "\\u0418\\u043d \\u0434\\u0438\\u0439\\u0441\\u043a\\u043e \\u0432\\u0440\\u0435\\u043c\\u0435", "+5:30" }, 2983 { "bg", "Asia/Calcutta", "2004-01-15T00:00:00Z", "zzzz", "\\u0418\\u043d \\u0434\\u0438\\u0439\\u0441\\u043a\\u043e \\u0441\\u0442\\u0430\\u043D\\u0434\\ u0430\\u0440\\u0442\\u043D\\u043E \\u0432\\u0440\\u0435\\u043c\\u0435", "+5:30" },
2984 { "bg", "Asia/Calcutta", "2004-07-15T00:00:00Z", "Z", "+0530", "+5:30" } , 2984 { "bg", "Asia/Calcutta", "2004-07-15T00:00:00Z", "Z", "+0530", "+5:30" } ,
2985 { "bg", "Asia/Calcutta", "2004-07-15T00:00:00Z", "ZZZZ", "\\u0413\\u0440 \\u0438\\u0438\\u043D\\u0443\\u0438\\u0447+05:30", "+5:30" }, 2985 { "bg", "Asia/Calcutta", "2004-07-15T00:00:00Z", "ZZZZ", "\\u0413\\u0440 \\u0438\\u043D\\u0443\\u0438\\u0447+05:30", "+5:30" },
2986 { "bg", "Asia/Calcutta", "2004-07-15T00:00:00Z", "z", "\\u0413\\u0440\\u 0438\\u0438\\u043D\\u0443\\u0438\\u0447+5:30", "+05:30" }, 2986 { "bg", "Asia/Calcutta", "2004-07-15T00:00:00Z", "z", "\\u0413\\u0440\\u 0438\\u043D\\u0443\\u0438\\u0447+5:30", "+05:30" },
2987 { "bg", "Asia/Calcutta", "2004-07-15T00:00:00Z", "zzzz", "\\u0418\\u043d \\u0434\\u0438\\u0439\\u0441\\u043a\\u043e \\u0432\\u0440\\u0435\\u043c\\u0435", "+5:30" }, 2987 { "bg", "Asia/Calcutta", "2004-07-15T00:00:00Z", "zzzz", "\\u0418\\u043d \\u0434\\u0438\\u0439\\u0441\\u043a\\u043e \\u0441\\u0442\\u0430\\u043D\\u0434\\ u0430\\u0440\\u0442\\u043D\\u043E \\u0432\\u0440\\u0435\\u043c\\u0435", "+5:30" },
2988 { "bg", "Asia/Calcutta", "2004-07-15T00:00:00Z", "v", "\\u0418\\u043D\\u 0434\\u0438\\u044F", "Asia/Calcutta" }, 2988 { "bg", "Asia/Calcutta", "2004-07-15T00:00:00Z", "v", "\\u0418\\u043D\\u 0434\\u0438\\u044F", "Asia/Calcutta" },
2989 { "bg", "Asia/Calcutta", "2004-07-15T00:00:00Z", "vvvv", "\\u0418\\u043d \\u0434\\u0438\\u0439\\u0441\\u043a\\u043e \\u0432\\u0440\\u0435\\u043c\\u0435", "Asia/Calcutta" }, 2989 { "bg", "Asia/Calcutta", "2004-07-15T00:00:00Z", "vvvv", "\\u0418\\u043d \\u0434\\u0438\\u0439\\u0441\\u043a\\u043e \\u0441\\u0442\\u0430\\u043D\\u0434\\ u0430\\u0440\\u0442\\u043D\\u043E \\u0432\\u0440\\u0435\\u043c\\u0435", "Asia/Ca lcutta" },
2990 // ========== 2990 // ==========
2991 2991
2992 { "ja", "America/Los_Angeles", "2004-01-15T00:00:00Z", "Z", "-0800", "-8 :00" }, 2992 { "ja", "America/Los_Angeles", "2004-01-15T00:00:00Z", "Z", "-0800", "-8 :00" },
2993 { "ja", "America/Los_Angeles", "2004-01-15T00:00:00Z", "ZZZZ", "GMT-08:0 0", "-8:00" }, 2993 { "ja", "America/Los_Angeles", "2004-01-15T00:00:00Z", "ZZZZ", "GMT-08:0 0", "-8:00" },
2994 { "ja", "America/Los_Angeles", "2004-01-15T00:00:00Z", "z", "GMT-8", "Am erica/Los_Angeles" }, 2994 { "ja", "America/Los_Angeles", "2004-01-15T00:00:00Z", "z", "GMT-8", "Am erica/Los_Angeles" },
2995 { "ja", "America/Los_Angeles", "2004-01-15T00:00:00Z", "zzzz", "\\u30a2\ \u30e1\\u30ea\\u30ab\\u592a\\u5e73\\u6d0b\\u6a19\\u6e96\\u6642", "America/Los_An geles" }, 2995 { "ja", "America/Los_Angeles", "2004-01-15T00:00:00Z", "zzzz", "\\u30a2\ \u30e1\\u30ea\\u30ab\\u592a\\u5e73\\u6d0b\\u6a19\\u6e96\\u6642", "America/Los_An geles" },
2996 { "ja", "America/Los_Angeles", "2004-07-15T00:00:00Z", "Z", "-0700", "-7 00" }, 2996 { "ja", "America/Los_Angeles", "2004-07-15T00:00:00Z", "Z", "-0700", "-7 00" },
2997 { "ja", "America/Los_Angeles", "2004-07-15T00:00:00Z", "ZZZZ", "GMT-07:0 0", "-7:00" }, 2997 { "ja", "America/Los_Angeles", "2004-07-15T00:00:00Z", "ZZZZ", "GMT-07:0 0", "-7:00" },
2998 { "ja", "America/Los_Angeles", "2004-07-15T00:00:00Z", "z", "GMT-7", "Am erica/Los_Angeles" }, 2998 { "ja", "America/Los_Angeles", "2004-07-15T00:00:00Z", "z", "GMT-7", "Am erica/Los_Angeles" },
2999 { "ja", "America/Los_Angeles", "2004-07-15T00:00:00Z", "zzzz", "\\u30a2\ \u30e1\\u30ea\\u30ab\\u592a\\u5e73\\u6d0b\\u590f\\u6642\\u9593", "America/Los_An geles" }, 2999 { "ja", "America/Los_Angeles", "2004-07-15T00:00:00Z", "zzzz", "\\u30a2\ \u30e1\\u30ea\\u30ab\\u592a\\u5e73\\u6d0b\\u590f\\u6642\\u9593", "America/Los_An geles" },
(...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after
3079 { "ja", "Etc/GMT+3", "2004-07-15T00:00:00Z", "ZZZZ", "GMT-03:00", "-3:00 " }, 3079 { "ja", "Etc/GMT+3", "2004-07-15T00:00:00Z", "ZZZZ", "GMT-03:00", "-3:00 " },
3080 { "ja", "Etc/GMT+3", "2004-07-15T00:00:00Z", "z", "GMT-3", "-3:00" }, 3080 { "ja", "Etc/GMT+3", "2004-07-15T00:00:00Z", "z", "GMT-3", "-3:00" },
3081 { "ja", "Etc/GMT+3", "2004-07-15T00:00:00Z", "zzzz", "GMT-03:00", "-3:00 " }, 3081 { "ja", "Etc/GMT+3", "2004-07-15T00:00:00Z", "zzzz", "GMT-03:00", "-3:00 " },
3082 { "ja", "Etc/GMT+3", "2004-07-15T00:00:00Z", "v", "GMT-3", "-3:00" }, 3082 { "ja", "Etc/GMT+3", "2004-07-15T00:00:00Z", "v", "GMT-3", "-3:00" },
3083 { "ja", "Etc/GMT+3", "2004-07-15T00:00:00Z", "vvvv", "GMT-03:00", "-3:00 " }, 3083 { "ja", "Etc/GMT+3", "2004-07-15T00:00:00Z", "vvvv", "GMT-03:00", "-3:00 " },
3084 3084
3085 // JB#5150 3085 // JB#5150
3086 { "ja", "Asia/Calcutta", "2004-01-15T00:00:00Z", "Z", "+0530", "+5:30" } , 3086 { "ja", "Asia/Calcutta", "2004-01-15T00:00:00Z", "Z", "+0530", "+5:30" } ,
3087 { "ja", "Asia/Calcutta", "2004-01-15T00:00:00Z", "ZZZZ", "GMT+05:30", "+ 5:30" }, 3087 { "ja", "Asia/Calcutta", "2004-01-15T00:00:00Z", "ZZZZ", "GMT+05:30", "+ 5:30" },
3088 { "ja", "Asia/Calcutta", "2004-01-15T00:00:00Z", "z", "GMT+5:30", "+5:30 " }, 3088 { "ja", "Asia/Calcutta", "2004-01-15T00:00:00Z", "z", "GMT+5:30", "+5:30 " },
3089 { "ja", "Asia/Calcutta", "2004-01-15T00:00:00Z", "zzzz", "\\u30A4\\u30F3 \\u30C9\\u6642\\u9593", "+5:30" }, 3089 { "ja", "Asia/Calcutta", "2004-01-15T00:00:00Z", "zzzz", "\\u30A4\\u30F3 \\u30C9\\u6A19\\u6E96\\u6642", "+5:30" },
3090 { "ja", "Asia/Calcutta", "2004-07-15T00:00:00Z", "Z", "+0530", "+5:30" } , 3090 { "ja", "Asia/Calcutta", "2004-07-15T00:00:00Z", "Z", "+0530", "+5:30" } ,
3091 { "ja", "Asia/Calcutta", "2004-07-15T00:00:00Z", "ZZZZ", "GMT+05:30", "+ 5:30" }, 3091 { "ja", "Asia/Calcutta", "2004-07-15T00:00:00Z", "ZZZZ", "GMT+05:30", "+ 5:30" },
3092 { "ja", "Asia/Calcutta", "2004-07-15T00:00:00Z", "z", "GMT+5:30", "+05:3 0" }, 3092 { "ja", "Asia/Calcutta", "2004-07-15T00:00:00Z", "z", "GMT+5:30", "+05:3 0" },
3093 { "ja", "Asia/Calcutta", "2004-07-15T00:00:00Z", "zzzz", "\\u30A4\\u30F3 \\u30C9\\u6642\\u9593", "+5:30" }, 3093 { "ja", "Asia/Calcutta", "2004-07-15T00:00:00Z", "zzzz", "\\u30A4\\u30F3 \\u30C9\\u6A19\\u6E96\\u6642", "+5:30" },
3094 { "ja", "Asia/Calcutta", "2004-07-15T00:00:00Z", "v", "\\u30A4\\u30F3\\u 30C9\\u6642\\u9593", "Asia/Calcutta" }, 3094 { "ja", "Asia/Calcutta", "2004-07-15T00:00:00Z", "v", "\\u30A4\\u30F3\\u 30C9\\u6642\\u9593", "Asia/Calcutta" },
3095 { "ja", "Asia/Calcutta", "2004-07-15T00:00:00Z", "vvvv", "\\u30A4\\u30F3 \\u30C9\\u6642\\u9593", "Asia/Calcutta" }, 3095 { "ja", "Asia/Calcutta", "2004-07-15T00:00:00Z", "vvvv", "\\u30A4\\u30F3 \\u30C9\\u6A19\\u6E96\\u6642", "Asia/Calcutta" },
3096 3096
3097 // ========== 3097 // ==========
3098 3098
3099 { "ti", "America/Los_Angeles", "2004-01-15T00:00:00Z", "Z", "-0800", "-8 :00" }, 3099 { "ti", "America/Los_Angeles", "2004-01-15T00:00:00Z", "Z", "-0800", "-8 :00" },
3100 { "ti", "America/Los_Angeles", "2004-01-15T00:00:00Z", "ZZZZ", "GMT-08:0 0", "-8:00" }, 3100 { "ti", "America/Los_Angeles", "2004-01-15T00:00:00Z", "ZZZZ", "GMT-08:0 0", "-8:00" },
3101 { "ti", "America/Los_Angeles", "2004-01-15T00:00:00Z", "z", "GMT-8", "-8 :00" }, 3101 { "ti", "America/Los_Angeles", "2004-01-15T00:00:00Z", "z", "GMT-8", "-8 :00" },
3102 { "ti", "America/Los_Angeles", "2004-01-15T00:00:00Z", "zzzz", "GMT-08:0 0", "-8:00" }, 3102 { "ti", "America/Los_Angeles", "2004-01-15T00:00:00Z", "zzzz", "GMT-08:0 0", "-8:00" },
3103 { "ti", "America/Los_Angeles", "2004-07-15T00:00:00Z", "Z", "-0700", "-7 :00" }, 3103 { "ti", "America/Los_Angeles", "2004-07-15T00:00:00Z", "Z", "-0700", "-7 :00" },
3104 { "ti", "America/Los_Angeles", "2004-07-15T00:00:00Z", "ZZZZ", "GMT-07:0 0", "-7:00" }, 3104 { "ti", "America/Los_Angeles", "2004-07-15T00:00:00Z", "ZZZZ", "GMT-07:0 0", "-7:00" },
3105 { "ti", "America/Los_Angeles", "2004-07-15T00:00:00Z", "z", "GMT-7", "-7 :00" }, 3105 { "ti", "America/Los_Angeles", "2004-07-15T00:00:00Z", "z", "GMT-7", "-7 :00" },
(...skipping 471 matching lines...) Expand 10 before | Expand all | Expand 10 after
3577 void DateFormatTest::Test6880() { 3577 void DateFormatTest::Test6880() {
3578 UErrorCode status = U_ZERO_ERROR; 3578 UErrorCode status = U_ZERO_ERROR;
3579 UDate d1, d2, dp1, dp2, dexp1, dexp2; 3579 UDate d1, d2, dp1, dp2, dexp1, dexp2;
3580 UnicodeString s1, s2; 3580 UnicodeString s1, s2;
3581 3581
3582 TimeZone *tz = TimeZone::createTimeZone("Asia/Shanghai"); 3582 TimeZone *tz = TimeZone::createTimeZone("Asia/Shanghai");
3583 GregorianCalendar gcal(*tz, status); 3583 GregorianCalendar gcal(*tz, status);
3584 if (failure(status, "construct GregorianCalendar", TRUE)) return; 3584 if (failure(status, "construct GregorianCalendar", TRUE)) return;
3585 3585
3586 gcal.clear(); 3586 gcal.clear();
3587 gcal.set(1910, UCAL_JULY, 1, 12, 00); // offset 8:05:57 3587 gcal.set(1900, UCAL_JULY, 1, 12, 00); // offset 8:05:43
3588 d1 = gcal.getTime(status); 3588 d1 = gcal.getTime(status);
3589 3589
3590 gcal.clear(); 3590 gcal.clear();
3591 gcal.set(1950, UCAL_JULY, 1, 12, 00); // offset 8:00 3591 gcal.set(1950, UCAL_JULY, 1, 12, 00); // offset 8:00
3592 d2 = gcal.getTime(status); 3592 d2 = gcal.getTime(status);
3593 3593
3594 gcal.clear(); 3594 gcal.clear();
3595 gcal.set(1970, UCAL_JANUARY, 1, 12, 00); 3595 gcal.set(1970, UCAL_JANUARY, 1, 12, 00);
3596 dexp2 = gcal.getTime(status); 3596 dexp2 = gcal.getTime(status);
3597 dexp1 = dexp2 - (5*60 + 57)*1000; // subtract 5m57s 3597 dexp1 = dexp2 - (5*60 + 43)*1000; // subtract 5m43s
3598 3598
3599 if (U_FAILURE(status)) { 3599 if (U_FAILURE(status)) {
3600 errln("FAIL: Gregorian calendar error"); 3600 errln("FAIL: Gregorian calendar error");
3601 } 3601 }
3602 3602
3603 DateFormat *fmt = DateFormat::createTimeInstance(DateFormat::kFull, Locale(" zh")); 3603 DateFormat *fmt = DateFormat::createTimeInstance(DateFormat::kFull, Locale(" zh"));
3604 if (fmt == NULL) { 3604 if (fmt == NULL) {
3605 dataerrln("Unable to create DateFormat. Got NULL."); 3605 dataerrln("Unable to create DateFormat. Got NULL.");
3606 return; 3606 return;
3607 } 3607 }
(...skipping 270 matching lines...) Expand 10 before | Expand all | Expand 10 after
3878 // locale date style; expected formats for the 3 dates above 3878 // locale date style; expected formats for the 3 dates above
3879 { "root@calendar=chinese", DateFormat::kLong, { UnicodeString("ren-c hen M04 2"), UnicodeString("ren-chen M04bis 2"), UnicodeString("ren-chen M05 2 ") } }, 3879 { "root@calendar=chinese", DateFormat::kLong, { UnicodeString("ren-c hen M04 2"), UnicodeString("ren-chen M04bis 2"), UnicodeString("ren-chen M05 2 ") } },
3880 { "root@calendar=chinese", DateFormat::kShort, { UnicodeString("29-04 -02"), UnicodeString("29-04bis-02"), UnicodeString("29-05-02") } }, 3880 { "root@calendar=chinese", DateFormat::kShort, { UnicodeString("29-04 -02"), UnicodeString("29-04bis-02"), UnicodeString("29-05-02") } },
3881 { "root@calendar=chinese", -1, { UnicodeString("29-4- 2"), UnicodeString("29-4bis-2"), UnicodeString("29-5-2") } }, 3881 { "root@calendar=chinese", -1, { UnicodeString("29-4- 2"), UnicodeString("29-4bis-2"), UnicodeString("29-5-2") } },
3882 { "root@calendar=chinese", -2, { UnicodeString("78x29 -4-2"), UnicodeString("78x29-4bis-2"), UnicodeString("78x29-5-2") } }, 3882 { "root@calendar=chinese", -2, { UnicodeString("78x29 -4-2"), UnicodeString("78x29-4bis-2"), UnicodeString("78x29-5-2") } },
3883 { "root@calendar=chinese", -3, { UnicodeString("ren-c hen-4-2"), UnicodeString("ren-chen-4bis-2"), UnicodeString("ren-chen-5-2" ) } }, 3883 { "root@calendar=chinese", -3, { UnicodeString("ren-c hen-4-2"), UnicodeString("ren-chen-4bis-2"), UnicodeString("ren-chen-5-2" ) } },
3884 { "root@calendar=chinese", -4, { UnicodeString("ren-c hen M04 2"), UnicodeString("ren-chen M04bis 2"), UnicodeString("ren-chen M05 2") } }, 3884 { "root@calendar=chinese", -4, { UnicodeString("ren-c hen M04 2"), UnicodeString("ren-chen M04bis 2"), UnicodeString("ren-chen M05 2") } },
3885 { "en@calendar=gregorian", -3, { UnicodeString("2012- 4-22"), UnicodeString("2012-5-22"), UnicodeString("2012-6-20") } }, 3885 { "en@calendar=gregorian", -3, { UnicodeString("2012- 4-22"), UnicodeString("2012-5-22"), UnicodeString("2012-6-20") } },
3886 { "en@calendar=chinese", DateFormat::kLong, { UnicodeString("Month 4 2, ren-chen"), UnicodeString("Month4bis 2, ren-chen"), UnicodeString("Month5 2 , ren-chen") } }, 3886 { "en@calendar=chinese", DateFormat::kLong, { UnicodeString("Month 4 2, ren-chen"), UnicodeString("Month4bis 2, ren-chen"), UnicodeString("Month5 2 , ren-chen") } },
3887 { "en@calendar=chinese", DateFormat::kShort, { UnicodeString("4/2/2 9"), UnicodeString("4bis/2/29"), UnicodeString("5/2/29") } }, 3887 { "en@calendar=chinese", DateFormat::kShort, { UnicodeString("4/2/2 9"), UnicodeString("4bis/2/29"), UnicodeString("5/2/29") } },
3888 { "zh@calendar=chinese", DateFormat::kLong, { CharsToUnicodeString ("\\u58EC\\u8FB0\\u5E74\\u56DB\\u6708\\u4E8C\\u65E5"), 3888 { "zh@calendar=chinese", DateFormat::kLong, { CharsToUnicodeString ("\\u58EC\\u8FB0\\u5E74\\u56DB\\u6708\\u521D\\u4E8C"),
3889 CharsToUnicodeString ("\\u58EC\\u8FB0\\u5E74\\u95F0\\u56DB\\u6708\\u4E8C\\u65E5"), 3889 CharsToUnicodeString ("\\u58EC\\u8FB0\\u5E74\\u95F0\\u56DB\\u6708\\u521D\\u4E8C"),
3890 CharsToUnicodeString ("\\u58EC\\u8FB0\\u5E74\\u4E94\\u6708\\u4E8C\\u65E5") } }, 3890 CharsToUnicodeString ("\\u58EC\\u8FB0\\u5E74\\u4E94\\u6708\\u521D\\u4E8C") } },
3891 { "zh@calendar=chinese", DateFormat::kShort, { CharsToUnicodeString ("\\u58EC\\u8FB0-4-2"), 3891 { "zh@calendar=chinese", DateFormat::kShort, { CharsToUnicodeString ("\\u58EC\\u8FB0-4-2"),
3892 CharsToUnicodeString ("\\u58EC\\u8FB0-\\u95F04-2"), 3892 CharsToUnicodeString ("\\u58EC\\u8FB0-\\u95F04-2"),
3893 CharsToUnicodeString ("\\u58EC\\u8FB0-5-2") } }, 3893 CharsToUnicodeString ("\\u58EC\\u8FB0-5-2") } },
3894 { "zh@calendar=chinese", -3, { CharsToUnicodeString ("\\u58EC\\u8FB0-4-2"), 3894 { "zh@calendar=chinese", -3, { CharsToUnicodeString ("\\u58EC\\u8FB0-4-2"),
3895 CharsToUnicodeString ("\\u58EC\\u8FB0-\\u95F04-2"), 3895 CharsToUnicodeString ("\\u58EC\\u8FB0-\\u95F04-2"),
3896 CharsToUnicodeString ("\\u58EC\\u8FB0-5-2") } }, 3896 CharsToUnicodeString ("\\u58EC\\u8FB0-5-2") } },
3897 { "zh@calendar=chinese", -4, { CharsToUnicodeString ("\\u58EC\\u8FB0 \\u56DB\\u6708 2"), 3897 { "zh@calendar=chinese", -4, { CharsToUnicodeString ("\\u58EC\\u8FB0 \\u56DB\\u6708 2"),
3898 CharsToUnicodeString ("\\u58EC\\u8FB0 \\u95F0\\u56DB\\u6708 2"), 3898 CharsToUnicodeString ("\\u58EC\\u8FB0 \\u95F0\\u56DB\\u6708 2"),
3899 CharsToUnicodeString ("\\u58EC\\u8FB0 \\u4E94\\u6708 2") } }, 3899 CharsToUnicodeString ("\\u58EC\\u8FB0 \\u4E94\\u6708 2") } },
3900 { "zh_Hant@calendar=chinese", DateFormat::kLong, { CharsToUnicodeString ("\\u58EC\\u8FB0\\u5E74\\u56DB\\u6708\\u4E8C\\u65E5"), 3900 { "zh_Hant@calendar=chinese", DateFormat::kLong, { CharsToUnicodeString ("\\u58EC\\u8FB0\\u5E74\\u56DB\\u6708\\u521D\\u4E8C"),
3901 CharsToUnicodeString ("\\u58EC\\u8FB0\\u5E74\\u958F\\u56DB\\u6708\\u4E8C\\u65E5"), 3901 CharsToUnicodeString ("\\u58EC\\u8FB0\\u5E74\\u958F\\u56DB\\u6708\\u521D\\u4E8C"),
3902 CharsToUnicodeString ("\\u58EC\\u8FB0\\u5E74\\u4E94\\u6708\\u4E8C\\u65E5") } }, 3902 CharsToUnicodeString ("\\u58EC\\u8FB0\\u5E74\\u4E94\\u6708\\u521D\\u4E8C") } },
3903 { "zh_Hant@calendar=chinese", DateFormat::kShort, { CharsToUnicodeString ("\\u58EC\\u8FB0/4/2"), 3903 { "zh_Hant@calendar=chinese", DateFormat::kShort, { CharsToUnicodeString ("\\u58EC\\u8FB0/4/2"),
3904 CharsToUnicodeString ("\\u58EC\\u8FB0/\\u958F4/2"), 3904 CharsToUnicodeString ("\\u58EC\\u8FB0/\\u958F4/2"),
3905 CharsToUnicodeString ("\\u58EC\\u8FB0/5/2") } }, 3905 CharsToUnicodeString ("\\u58EC\\u8FB0/5/2") } },
3906 { "fr@calendar=chinese", DateFormat::kLong, { CharsToUnicodeString ("2 s\\u00ECyu\\u00E8 ren-chen"), 3906 { "fr@calendar=chinese", DateFormat::kLong, { CharsToUnicodeString ("2 s\\u00ECyu\\u00E8 ren-chen"),
3907 CharsToUnicodeString ("2 s\\u00ECyu\\u00E8bis ren-chen"), 3907 CharsToUnicodeString ("2 s\\u00ECyu\\u00E8bis ren-chen"),
3908 CharsToUnicodeString ("2 w\\u01D4yu\\u00E8 ren-chen") } }, 3908 CharsToUnicodeString ("2 w\\u01D4yu\\u00E8 ren-chen") } },
3909 { "fr@calendar=chinese", DateFormat::kShort, { UnicodeString("2/4/2 9"), UnicodeString("2/4bis/29"), UnicodeString("2/5/29") } }, 3909 { "fr@calendar=chinese", DateFormat::kShort, { UnicodeString("2/4/2 9"), UnicodeString("2/4bis/29"), UnicodeString("2/5/29") } },
3910 { "en@calendar=dangi", DateFormat::kLong, { UnicodeString("Month 3bis 2, 29"), UnicodeString("Month4 2, 29"), UnicodeString("Month5 1, 29" ) } }, 3910 { "en@calendar=dangi", DateFormat::kLong, { UnicodeString("Month 3bis 2, 29"), UnicodeString("Month4 2, 29"), UnicodeString("Month5 1, 29" ) } },
3911 { "en@calendar=dangi", DateFormat::kShort, { UnicodeString("3bis/ 2/29"), UnicodeString("4/2/29"), UnicodeString("5/1/29") } }, 3911 { "en@calendar=dangi", DateFormat::kShort, { UnicodeString("3bis/ 2/29"), UnicodeString("4/2/29"), UnicodeString("5/1/29") } },
3912 { "en@calendar=dangi", -2, { UnicodeString("78x29 -3bis-2"), UnicodeString("78x29-4-2"), UnicodeString("78x29-5-1") } }, 3912 { "en@calendar=dangi", -2, { UnicodeString("78x29 -3bis-2"), UnicodeString("78x29-4-2"), UnicodeString("78x29-5-1") } },
3913 { "ko@calendar=dangi", DateFormat::kLong, { CharsToUnicodeString ("\\uC784\\uC9C4\\uB144 3bis\\uC6D4 2\\uC77C"), 3913 { "ko@calendar=dangi", DateFormat::kLong, { CharsToUnicodeString ("\\uC784\\uC9C4\\uB144 \\uC7243\\uC6D4 2\\uC77C"),
3914 CharsToUnicodeString ("\\uC784\\uC9C4\\uB144 4\\uC6D4 2\\uC77C"), 3914 CharsToUnicodeString ("\\uC784\\uC9C4\\uB144 4\\uC6D4 2\\uC77C"),
3915 CharsToUnicodeString ("\\uC784\\uC9C4\\uB144 5\\uC6D4 1\\uC77C") } }, 3915 CharsToUnicodeString ("\\uC784\\uC9C4\\uB144 5\\uC6D4 1\\uC77C") } },
3916 { "ko@calendar=dangi", DateFormat::kShort, { CharsToUnicodeString ("29. 3bis. 2."), 3916 { "ko@calendar=dangi", DateFormat::kShort, { CharsToUnicodeString ("29. \\uC7243. 2."),
3917 CharsToUnicodeString ("29. 4. 2."), 3917 CharsToUnicodeString ("29. 4. 2."),
3918 CharsToUnicodeString ("29. 5. 1.") } }, 3918 CharsToUnicodeString ("29. 5. 1.") } },
3919 // terminator 3919 // terminator
3920 { NULL, 0, { UnicodeString(""), U nicodeString(""), UnicodeString("") } } 3920 { NULL, 0, { UnicodeString(""), U nicodeString(""), UnicodeString("") } }
3921 }; 3921 };
3922 3922
3923 //. style: -1 -2 -3 -4 3923 //. style: -1 -2 -3 -4
3924 const UnicodeString customPatterns[] = { "y-Ml-d", "G'x'y-Ml-d", "U-M-d", "U MMM d" }; // like old root pattern, using 'l' 3924 const UnicodeString customPatterns[] = { "y-Ml-d", "G'x'y-Ml-d", "U-M-d", "U MMM d" }; // like old root pattern, using 'l'
3925 3925
3926 UErrorCode status = U_ZERO_ERROR; 3926 UErrorCode status = U_ZERO_ERROR;
(...skipping 115 matching lines...) Expand 10 before | Expand all | Expand 10 after
4042 } 4042 }
4043 } 4043 }
4044 } 4044 }
4045 if (cal) { 4045 if (cal) {
4046 delete cal; 4046 delete cal;
4047 } 4047 }
4048 } 4048 }
4049 4049
4050 // test item for a particular locale + calendar and date format 4050 // test item for a particular locale + calendar and date format
4051 typedef struct { 4051 typedef struct {
4052 int32_t era;
4052 int32_t year; 4053 int32_t year;
4053 int32_t month; 4054 int32_t month;
4054 int32_t day; 4055 int32_t day;
4055 int32_t hour; 4056 int32_t hour;
4056 int32_t minute; 4057 int32_t minute;
4057 UnicodeString formattedDate; 4058 UnicodeString formattedDate;
4058 } CalAndFmtTestItem; 4059 } CalAndFmtTestItem;
4059 4060
4060 // test item giving locale + calendar, date format, and CalAndFmtTestItems 4061 // test item giving locale + calendar, date format, and CalAndFmtTestItems
4061 typedef struct { 4062 typedef struct {
4062 const char * locale; // with calendar 4063 const char * locale; // with calendar
4063 DateFormat::EStyle style; 4064 DateFormat::EStyle style;
4065 UnicodeString pattern; // ignored unless style == DateFormat::kNone
4064 const CalAndFmtTestItem *caftItems; 4066 const CalAndFmtTestItem *caftItems;
4065 } TestNonGregoItem; 4067 } TestNonGregoItem;
4066 4068
4067 void DateFormatTest::TestNonGregoFmtParse() 4069 void DateFormatTest::TestNonGregoFmtParse()
4068 { 4070 {
4069 // test items for he@calendar=hebrew, long date format 4071 // test items for he@calendar=hebrew, long date format
4070 const CalAndFmtTestItem cafti_he_hebrew_long[] = { 4072 const CalAndFmtTestItem cafti_he_hebrew_long[] = {
4071 { 4999, 12, 29, 12, 0, CharsToUnicodeString("\\u05DB\\u05F4\\u05D8 \\u05 D1\\u05D0\\u05DC\\u05D5\\u05DC \\u05D3\\u05F3\\u05EA\\u05EA\\u05E7\\u05E6\\u05F4 \\u05D8") }, 4073 { 0, 4999, 12, 29, 12, 0, CharsToUnicodeString("\\u05DB\\u05F4\\u05D8 \ \u05D1\\u05D0\\u05DC\\u05D5\\u05DC \\u05D3\\u05F3\\u05EA\\u05EA\\u05E7\\u05E6\\u 05F4\\u05D8") },
4072 { 5100, 0, 1, 12, 0, CharsToUnicodeString("\\u05D0\\u05F3 \\u05D1\\u05 EA\\u05E9\\u05E8\\u05D9 \\u05E7\\u05F3") }, 4074 { 0, 5100, 0, 1, 12, 0, CharsToUnicodeString("\\u05D0\\u05F3 \\u05D1\ \u05EA\\u05E9\\u05E8\\u05D9 \\u05E7\\u05F3") },
4073 { 5774, 5, 1, 12, 0, CharsToUnicodeString("\\u05D0\\u05F3 \\u05D1\\u05 D0\\u05D3\\u05E8 \\u05D0\\u05F3 \\u05EA\\u05E9\\u05E2\\u05F4\\u05D3") }, 4075 { 0, 5774, 5, 1, 12, 0, CharsToUnicodeString("\\u05D0\\u05F3 \\u05D1\ \u05D0\\u05D3\\u05E8 \\u05D0\\u05F3 \\u05EA\\u05E9\\u05E2\\u05F4\\u05D3") },
4074 { 5999, 12, 29, 12, 0, CharsToUnicodeString("\\u05DB\\u05F4\\u05D8 \\u05 D1\\u05D0\\u05DC\\u05D5\\u05DC \\u05EA\\u05EA\\u05E7\\u05E6\\u05F4\\u05D8") }, 4076 { 0, 5999, 12, 29, 12, 0, CharsToUnicodeString("\\u05DB\\u05F4\\u05D8 \ \u05D1\\u05D0\\u05DC\\u05D5\\u05DC \\u05EA\\u05EA\\u05E7\\u05E6\\u05F4\\u05D8") },
4075 { 6100, 0, 1, 12, 0, CharsToUnicodeString("\\u05D0\\u05F3 \\u05D1\\u05 EA\\u05E9\\u05E8\\u05D9 \\u05D5\\u05F3\\u05E7\\u05F3") }, 4077 { 0, 6100, 0, 1, 12, 0, CharsToUnicodeString("\\u05D0\\u05F3 \\u05D1\ \u05EA\\u05E9\\u05E8\\u05D9 \\u05D5\\u05F3\\u05E7\\u05F3") },
4076 { 0, 0, 0, 0, 0, UnicodeString("") } // terminator 4078 { 0, 0, 0, 0, 0, 0, UnicodeString("") } // terminator
4079 };
4080 const CalAndFmtTestItem cafti_zh_chinese_custU[] = {
4081 { 78, 31, 0, 1, 12, 0, CharsToUnicodeString("2014\\u7532\\u5348\\u5E 74\\u6B63\\u67081") },
4082 { 77, 31, 0, 1, 12, 0, CharsToUnicodeString("1954\\u7532\\u5348\\u5E 74\\u6B63\\u67081") },
4083 { 0, 0, 0, 0, 0, 0, UnicodeString("") } // terminator
4084 };
4085 const CalAndFmtTestItem cafti_zh_chinese_custNoU[] = {
4086 { 78, 31, 0, 1, 12, 0, CharsToUnicodeString("2014\\u5E74\\u6B63\\u67 081") },
4087 { 77, 31, 0, 1, 12, 0, CharsToUnicodeString("1954\\u5E74\\u6B63\\u67 081") },
4088 { 0, 0, 0, 0, 0, 0, UnicodeString("") } // terminator
4089 };
4090 const CalAndFmtTestItem cafti_ja_japanese_custGy[] = {
4091 {235, 26, 2, 5, 12, 0, CharsToUnicodeString("2014(\\u5E73\\u621026)\ \u5E743\\u67085\\u65E5") },
4092 {234, 60, 2, 5, 12, 0, CharsToUnicodeString("1985(\\u662D\\u548C60)\ \u5E743\\u67085\\u65E5") },
4093 { 0, 0, 0, 0, 0, 0, UnicodeString("") } // terminator
4094 };
4095 const CalAndFmtTestItem cafti_ja_japanese_custNoGy[] = {
4096 {235, 26, 2, 5, 12, 0, CharsToUnicodeString("2014\\u5E743\\u67085\\u 65E5") },
4097 {234, 60, 2, 5, 12, 0, CharsToUnicodeString("1985\\u5E743\\u67085\\u 65E5") },
4098 { 0, 0, 0, 0, 0, 0, UnicodeString("") } // terminator
4099 };
4100 const CalAndFmtTestItem cafti_en_islamic_cust[] = {
4101 { 0, 1384, 0, 1, 12, 0, UnicodeString("1 Muh. 1384 AH, 1964") },
4102 { 0, 1436, 0, 1, 12, 0, UnicodeString("1 Muh. 1436 AH, 2014") },
4103 { 0, 1487, 0, 1, 12, 0, UnicodeString("1 Muh. 1487 AH, 2064") },
4104 { 0, 0, 0, 0, 0, 0, UnicodeString("") } // terminator
4077 }; 4105 };
4078 // overal test items 4106 // overal test items
4079 const TestNonGregoItem items[] = { 4107 const TestNonGregoItem items[] = {
4080 { "he@calendar=hebrew", DateFormat::kLong, cafti_he_hebrew_long }, 4108 { "he@calendar=hebrew", DateFormat::kLong, UnicodeString(""), cafti_he_hebrew_long },
4081 { NULL, DateFormat::kNone, NULL } // terminator 4109 { "zh@calendar=chinese", DateFormat::kNone, CharsToUnicodeString("rU\\u 5E74MMMd"), cafti_zh_chinese_custU },
4110 { "zh@calendar=chinese", DateFormat::kNone, CharsToUnicodeString("r\\u5 E74MMMd"), cafti_zh_chinese_custNoU },
4111 { "ja@calendar=japanese", DateFormat::kNone, CharsToUnicodeString("r(Gy) \\u5E74M\\u6708d\\u65E5"), cafti_ja_japanese_custGy },
4112 { "ja@calendar=japanese", DateFormat::kNone, CharsToUnicodeString("r\\u5 E74M\\u6708d\\u65E5"), cafti_ja_japanese_custNoGy },
4113 { "en@calendar=islamic", DateFormat::kNone, UnicodeString("d MMM y G, r "), cafti_en_islamic_cust },
4114 { NULL, DateFormat::kNone, UnicodeString(""), NULL } // terminator
4082 }; 4115 };
4083 const TestNonGregoItem * itemPtr; 4116 const TestNonGregoItem * itemPtr;
4084 for (itemPtr = items; itemPtr->locale != NULL; itemPtr++) { 4117 for (itemPtr = items; itemPtr->locale != NULL; itemPtr++) {
4085 Locale locale = Locale::createFromName(itemPtr->locale); 4118 Locale locale = Locale::createFromName(itemPtr->locale);
4086 DateFormat * dfmt = DateFormat::createDateInstance(itemPtr->style, local e); 4119 DateFormat * dfmt = NULL;
4087 if (dfmt == NULL) { 4120 UErrorCode status = U_ZERO_ERROR;
4121 if (itemPtr->style != DateFormat::kNone) {
4122 dfmt = DateFormat::createDateInstance(itemPtr->style, locale);
4123 } else {
4124 dfmt = new SimpleDateFormat(itemPtr->pattern, locale, status);
4125 }
4126 if (U_FAILURE(status)) {
4127 dataerrln("new SimpleDateFormat fails for locale %s", itemPtr->local e);
4128 } else if (dfmt == NULL) {
4088 dataerrln("DateFormat::createDateInstance fails for locale %s", item Ptr->locale); 4129 dataerrln("DateFormat::createDateInstance fails for locale %s", item Ptr->locale);
4089 } else { 4130 } else {
4090 Calendar * cal = (dfmt->getCalendar())->clone(); 4131 Calendar * cal = (dfmt->getCalendar())->clone();
4091 if (cal == NULL) { 4132 if (cal == NULL) {
4092 dataerrln("(DateFormat::getCalendar)->clone() fails for locale % s", itemPtr->locale); 4133 dataerrln("(DateFormat::getCalendar)->clone() fails for locale % s", itemPtr->locale);
4093 } else { 4134 } else {
4094 const CalAndFmtTestItem * caftItemPtr; 4135 const CalAndFmtTestItem * caftItemPtr;
4095 for (caftItemPtr = itemPtr->caftItems; caftItemPtr->year != 0; c aftItemPtr++) { 4136 for (caftItemPtr = itemPtr->caftItems; caftItemPtr->year != 0; c aftItemPtr++) {
4096 cal->clear(); 4137 cal->clear();
4138 cal->set(UCAL_ERA, caftItemPtr->era);
4097 cal->set(UCAL_YEAR, caftItemPtr->year); 4139 cal->set(UCAL_YEAR, caftItemPtr->year);
4098 cal->set(UCAL_MONTH, caftItemPtr->month); 4140 cal->set(UCAL_MONTH, caftItemPtr->month);
4099 cal->set(UCAL_DATE, caftItemPtr->day); 4141 cal->set(UCAL_DATE, caftItemPtr->day);
4100 cal->set(UCAL_HOUR_OF_DAY, caftItemPtr->hour); 4142 cal->set(UCAL_HOUR_OF_DAY, caftItemPtr->hour);
4101 cal->set(UCAL_MINUTE, caftItemPtr->minute); 4143 cal->set(UCAL_MINUTE, caftItemPtr->minute);
4102 UnicodeString result; 4144 UnicodeString result;
4103 FieldPosition fpos(0); 4145 FieldPosition fpos(0);
4104 dfmt->format(*cal, result, fpos); 4146 dfmt->format(*cal, result, fpos);
4105 if ( result.compare(caftItemPtr->formattedDate) != 0 ) { 4147 if ( result.compare(caftItemPtr->formattedDate) != 0 ) {
4106 errln( UnicodeString("FAIL: date format for locale ") + UnicodeString(itemPtr->locale) + ", style " + itemPtr->style + 4148 errln( UnicodeString("FAIL: date format for locale ") + UnicodeString(itemPtr->locale) + ", style " + itemPtr->style +
4107 ", expected \"" + caftItemPtr->formattedDate + " \", got \"" + result + "\""); 4149 ", expected \"" + caftItemPtr->formattedDate + " \", got \"" + result + "\"");
4108 } else { 4150 } else {
4109 // formatted OK, try parse 4151 // formatted OK, try parse
4110 ParsePosition ppos(0); 4152 ParsePosition ppos(0);
4111 dfmt->parse(result, *cal, ppos); 4153 dfmt->parse(result, *cal, ppos);
4112 UErrorCode status = U_ZERO_ERROR; 4154 status = U_ZERO_ERROR;
4155 int32_t era = cal->get(UCAL_ERA, status);
4113 int32_t year = cal->get(UCAL_YEAR, status); 4156 int32_t year = cal->get(UCAL_YEAR, status);
4114 int32_t month = cal->get(UCAL_MONTH, status); 4157 int32_t month = cal->get(UCAL_MONTH, status);
4115 int32_t day = cal->get(UCAL_DATE, status); 4158 int32_t day = cal->get(UCAL_DATE, status);
4116 if ( U_FAILURE(status) || ppos.getIndex() < result.lengt h() || year != caftItemPtr->year || month != caftItemPtr->month || day != caftIt emPtr->day ) { 4159 if ( U_FAILURE(status) || ppos.getIndex() < result.lengt h() || era != caftItemPtr->era ||
4117 errln( UnicodeString("FAIL: date parse for locale ") + UnicodeString(itemPtr->locale) + ", style " + itemPtr->style + 4160 year != caftItemPtr->year || month != caftItemPt r->month || day != caftItemPtr->day ) {
4118 ", string \"" + result + "\", expected " + caftI temPtr->year +"-"+caftItemPtr->month+"-"+caftItemPtr->day + ", got pos " + 4161 errln( UnicodeString("FAIL: date parse for locale ") + UnicodeString(itemPtr->locale) +
4162 ", style " + itemPtr->style + ", string \"" + re sult + "\", expected " +
4163 caftItemPtr->era +":"+caftItemPtr->year +"-"+caf tItemPtr->month+"-"+caftItemPtr->day + ", got pos " +
4119 ppos.getIndex() + " " + year +"-"+month+"-"+day + " status " + UnicodeString(u_errorName(status)) ); 4164 ppos.getIndex() + " " + year +"-"+month+"-"+day + " status " + UnicodeString(u_errorName(status)) );
4120 } 4165 }
4121 } 4166 }
4122 } 4167 }
4123 delete cal; 4168 delete cal;
4124 } 4169 }
4125 delete dfmt; 4170 delete dfmt;
4126 } 4171 }
4127 } 4172 }
4128 } 4173 }
4129 4174
4130 static const UDate TEST_DATE = 1326585600000.; // 2012-jan-15 4175 static const UDate TEST_DATE = 1326585600000.; // 2012-jan-15
4131 4176
4132 void DateFormatTest::TestDotAndAtLeniency() { 4177 void DateFormatTest::TestDotAndAtLeniency() {
4133 // Test for date/time parsing regression with CLDR 22.1/ICU 50 pattern strin gs. 4178 // Test for date/time parsing regression with CLDR 22.1/ICU 50 pattern strin gs.
4134 // For details see http://bugs.icu-project.org/trac/ticket/9789 4179 // For details see http://bugs.icu-project.org/trac/ticket/9789
4135 static const char *locales[] = { "en", "fr" }; 4180 static const char *locales[] = { "en", "fr" };
4136 for (int32_t i = 0; i < LENGTHOF(locales); ++i) { 4181 for (int32_t i = 0; i < UPRV_LENGTHOF(locales); ++i) {
4137 Locale locale(locales[i]); 4182 Locale locale(locales[i]);
4138 4183
4139 for (DateFormat::EStyle dateStyle = DateFormat::FULL; dateStyle <= DateF ormat::SHORT; 4184 for (DateFormat::EStyle dateStyle = DateFormat::FULL; dateStyle <= DateF ormat::SHORT;
4140 dateStyle = static_cast<DateFormat::EStyle>(dateStyle + 1)) { 4185 dateStyle = static_cast<DateFormat::EStyle>(dateStyle + 1)) {
4141 LocalPointer<DateFormat> dateFormat(DateFormat::createDateInstance(d ateStyle, locale)); 4186 LocalPointer<DateFormat> dateFormat(DateFormat::createDateInstance(d ateStyle, locale));
4142 4187
4143 for (DateFormat::EStyle timeStyle = DateFormat::FULL; timeStyle <= D ateFormat::SHORT; 4188 for (DateFormat::EStyle timeStyle = DateFormat::FULL; timeStyle <= D ateFormat::SHORT;
4144 timeStyle = static_cast<DateFormat::EStyle>(timeStyle + 1) ) { 4189 timeStyle = static_cast<DateFormat::EStyle>(timeStyle + 1) ) {
4145 LocalPointer<DateFormat> format(DateFormat::createDateTimeInstan ce(dateStyle, timeStyle, locale)); 4190 LocalPointer<DateFormat> format(DateFormat::createDateTimeInstan ce(dateStyle, timeStyle, locale));
4146 LocalPointer<DateFormat> timeFormat(DateFormat::createTimeInstan ce(timeStyle, locale)); 4191 LocalPointer<DateFormat> timeFormat(DateFormat::createTimeInstan ce(timeStyle, locale));
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after
4192 } 4237 }
4193 return ok; 4238 return ok;
4194 } 4239 }
4195 4240
4196 4241
4197 typedef struct { 4242 typedef struct {
4198 const char * locale; 4243 const char * locale;
4199 UBool leniency; 4244 UBool leniency;
4200 UnicodeString parseString; 4245 UnicodeString parseString;
4201 UnicodeString pattern; 4246 UnicodeString pattern;
4202 UnicodeString expectedResult; // null indicates expected error 4247 UnicodeString expectedResult; // empty string indicates expected error
4203 } TestDateFormatLeniencyItem; 4248 } TestDateFormatLeniencyItem;
4204 4249
4205 void DateFormatTest::TestDateFormatLeniency() { 4250 void DateFormatTest::TestDateFormatLeniency() {
4206 // For details see http://bugs.icu-project.org/trac/ticket/10261 4251 // For details see http://bugs.icu-project.org/trac/ticket/10261
4207 4252
4208 const UDate july022008 = 1215000001979.0; 4253 const UDate july022008 = 1215000001979.0;
4209 const TestDateFormatLeniencyItem items[] = { 4254 const TestDateFormatLeniencyItem items[] = {
4210 //locale leniency parse String pattern expected result 4255 //locale leniency parse String pattern expected result
4211 { "en", true, UnicodeString("2008-07 02"), UnicodeString("y yyy-LLLL dd"), UnicodeString("2008-July 02") }, 4256 { "en", true, UnicodeString("2008-07 02"), UnicodeString("y yyy-LLLL dd"), UnicodeString("2008-July 02") },
4212 { "en", false, UnicodeString("2008-07 02"), UnicodeString("y yyy-LLLL dd"), UnicodeString("") }, 4257 { "en", false, UnicodeString("2008-07 02"), UnicodeString("y yyy-LLLL dd"), UnicodeString("") },
4213 { "en", true, UnicodeString("2008-Jan 02"), UnicodeString("y yyy-LLL. dd"), UnicodeString("2008-Jan 02") }, 4258 { "en", true, UnicodeString("2008-Jan 02"), UnicodeString("y yyy-LLL. dd"), UnicodeString("2008-Jan. 02") },
4214 { "en", false, UnicodeString("2008-Jan 02"), UnicodeString("y yyy-LLL. dd"), UnicodeString("") }, 4259 { "en", false, UnicodeString("2008-Jan 02"), UnicodeString("y yyy-LLL. dd"), UnicodeString("") },
4215 { "en", true, UnicodeString("2008-Jan--02"), UnicodeString("y yyy-MMM' -- 'dd"), UnicodeString("2008-Jan 02") }, 4260 { "en", true, UnicodeString("2008-Jan--02"), UnicodeString("y yyy-MMM' -- 'dd"), UnicodeString("2008-Jan -- 02") },
4216 { "en", false, UnicodeString("2008-Jan--02"), UnicodeString("y yyy-MMM' -- 'dd"), UnicodeString("") }, 4261 { "en", false, UnicodeString("2008-Jan--02"), UnicodeString("y yyy-MMM' -- 'dd"), UnicodeString("") },
4217 // terminator 4262 // terminator
4218 { NULL, true, UnicodeString(""), UnicodeString("" ), UnicodeString("") } 4263 { NULL, true, UnicodeString(""), UnicodeString("" ), UnicodeString("") }
4219 }; 4264 };
4220 UErrorCode status = U_ZERO_ERROR; 4265 UErrorCode status = U_ZERO_ERROR;
4221 Calendar* cal = Calendar::createInstance(status); 4266 LocalPointer<Calendar> cal(Calendar::createInstance(status));
4222 if (U_FAILURE(status)) { 4267 if (U_FAILURE(status)) {
4223 dataerrln(UnicodeString("FAIL: Unable to create Calendar for default tim ezone and locale.")); 4268 dataerrln(UnicodeString("FAIL: Unable to create Calendar for default tim ezone and locale."));
4224 } else { 4269 return;
4225 cal->setTime(july022008, status); 4270 }
4226 const TestDateFormatLeniencyItem * itemPtr; 4271 cal->setTime(july022008, status);
4227 for (itemPtr = items; itemPtr->locale != NULL; itemPtr++ ) { 4272 const TestDateFormatLeniencyItem * itemPtr;
4228 4273 LocalPointer<SimpleDateFormat> sdmft;
4229 Locale locale = Locale::createFromName(itemPtr->locale); 4274 for (itemPtr = items; itemPtr->locale != NULL; itemPtr++ ) {
4230 status = U_ZERO_ERROR; 4275
4231 ParsePosition pos(0); 4276 Locale locale = Locale::createFromName(itemPtr->locale);
4232 SimpleDateFormat * sdmft = new SimpleDateFormat(itemPtr->pattern, loc ale, status); 4277 status = U_ZERO_ERROR;
4233 if (U_FAILURE(status)) { 4278 ParsePosition pos(0);
4234 dataerrln("Unable to create SimpleDateFormat - %s", u_errorName(s tatus)); 4279 sdmft.adoptInstead(new SimpleDateFormat(itemPtr->pattern, locale, status) );
4280 if (U_FAILURE(status)) {
4281 dataerrln("Unable to create SimpleDateFormat - %s", u_errorName(statu s));
4282 continue;
4283 }
4284 sdmft->setBooleanAttribute(UDAT_PARSE_ALLOW_WHITESPACE, itemPtr->leniency , status).
4285 setBooleanAttribute(UDAT_PARSE_ALLOW_NUMERIC, itemPtr->leniency, s tatus).
4286 setBooleanAttribute(UDAT_PARSE_PARTIAL_MATCH, itemPtr->leniency, s tatus);
4287 UDate d = sdmft->parse(itemPtr->parseString, pos);
4288
4289 if(itemPtr->expectedResult.length() == 0) {
4290 if(pos.getErrorIndex() != -1) {
4235 continue; 4291 continue;
4292 } else {
4293 errln("error: unexpected parse success - " + itemPtr->parseStrin g +
4294 " - pattern " + itemPtr->pattern +
4295 " - error index " + pos.getErrorIndex() +
4296 " - leniency " + itemPtr->leniency);
4297 continue;
4236 } 4298 }
4237 sdmft->setLenient(itemPtr->leniency); 4299 }
4238 sdmft->setBooleanAttribute(UDAT_PARSE_ALLOW_WHITESPACE, itemPtr->leni ency, status).setBooleanAttribute(UDAT_PARSE_ALLOW_NUMERIC, itemPtr->leniency, s tatus); 4300 if(pos.getErrorIndex() != -1) {
4239 /*UDate d = */sdmft->parse(itemPtr->parseString, pos); 4301 errln("error: parse error for string - " + itemPtr->parseString +
4240 4302 " - pattern " + itemPtr->pattern +
4241 delete sdmft; 4303 " - idx " + pos.getIndex() +
4242 if(pos.getErrorIndex() > -1) 4304 " - error index "+pos.getErrorIndex() +
4243 if(itemPtr->expectedResult.length() != 0) { 4305 " - leniency " + itemPtr->leniency);
4244 errln("error: unexpected error - " + itemPtr->parseString + " - error index " + pos.getErrorIndex() + " - leniency " + itemPtr->leniency); 4306 continue;
4245 continue; 4307 }
4246 } else { 4308
4247 continue; 4309 UnicodeString formatResult("");
4248 } 4310 sdmft->format(d, formatResult);
4249 } 4311 if(formatResult.compare(itemPtr->expectedResult) != 0) {
4250 } 4312 errln("error: unexpected format result. pattern["+itemPtr->pattern+"] expected[" + itemPtr->expectedResult + "] but result was[" + formatResult + "] ");
4251 delete cal; 4313 continue;
4252 4314 } else {
4253 } 4315 logln("formatted results match! - " + formatResult);
4254 4316 }
4317
4318 }
4319 }
4320
4321
4322 typedef struct {
4323 UBool leniency;
4324 UnicodeString parseString;
4325 UnicodeString pattern;
4326 UnicodeString expectedResult; // empty string indicates expected error
4327 } TestMultiPatternMatchItem;
4328
4329 void DateFormatTest::TestParseMultiPatternMatch() {
4330 // For details see http://bugs.icu-project.org/trac/ticket/10336
4331 const TestMultiPatternMatchItem items[] = {
4332 // leniency parse String pattern expected result
4333 {true, UnicodeString("2013-Sep 13"), UnicodeStr ing("yyyy-MMM dd"), UnicodeString("2013-Sep 13")},
4334 {true, UnicodeString("2013-September 14"), UnicodeStr ing("yyyy-MMM dd"), UnicodeString("2013-Sep 14")},
4335 {false, UnicodeString("2013-September 15"), UnicodeStr ing("yyyy-MMM dd"), UnicodeString("")},
4336 {false, UnicodeString("2013-September 16"), UnicodeStr ing("yyyy-MMMM dd"), UnicodeString("2013-September 16")},
4337 {true, UnicodeString("2013-Sep 17"), UnicodeStr ing("yyyy-LLL dd"), UnicodeString("2013-Sep 17")},
4338 {true, UnicodeString("2013-September 18"), UnicodeStr ing("yyyy-LLL dd"), UnicodeString("2013-Sep 18")},
4339 {false, UnicodeString("2013-September 19"), UnicodeStr ing("yyyy-LLL dd"), UnicodeString("")},
4340 {false, UnicodeString("2013-September 20"), UnicodeStr ing("yyyy-LLLL dd"), UnicodeString("2013-September 20")},
4341 {true, UnicodeString("2013 Sat Sep 21"), UnicodeStr ing("yyyy EEE MMM dd"), UnicodeString("2013 Sat Sep 21")},
4342 {true, UnicodeString("2013 Sunday Sep 22"), UnicodeStr ing("yyyy EEE MMM dd"), UnicodeString("2013 Sun Sep 22")},
4343 {false, UnicodeString("2013 Monday Sep 23"), UnicodeStr ing("yyyy EEE MMM dd"), UnicodeString("")},
4344 {false, UnicodeString("2013 Tuesday Sep 24"), UnicodeStr ing("yyyy EEEE MMM dd"), UnicodeString("2013 Tuesday Sep 24")},
4345 {true, UnicodeString("2013 Wed Sep 25"), UnicodeStr ing("yyyy eee MMM dd"), UnicodeString("2013 Wed Sep 25")},
4346 {true, UnicodeString("2013 Thu Sep 26"), UnicodeStr ing("yyyy eee MMM dd"), UnicodeString("2013 Thu Sep 26")},
4347 {false, UnicodeString("2013 Friday Sep 27"), UnicodeStr ing("yyyy eee MMM dd"), UnicodeString("")},
4348 {false, UnicodeString("2013 Saturday Sep 28"), UnicodeStr ing("yyyy eeee MMM dd"), UnicodeString("2013 Saturday Sep 28")},
4349 {true, UnicodeString("2013 Sun Sep 29"), UnicodeStr ing("yyyy ccc MMM dd"), UnicodeString("2013 Sun Sep 29")},
4350 {true, UnicodeString("2013 Monday Sep 30"), UnicodeStr ing("yyyy ccc MMM dd"), UnicodeString("2013 Mon Sep 30")},
4351 {false, UnicodeString("2013 Sunday Oct 13"), UnicodeStr ing("yyyy ccc MMM dd"), UnicodeString("")},
4352 {false, UnicodeString("2013 Monday Oct 14"), UnicodeStr ing("yyyy cccc MMM dd"), UnicodeString("2013 Monday Oct 14")},
4353 {true, UnicodeString("2013 Oct 15 Q4"), UnicodeStr ing("yyyy MMM dd QQQ"), UnicodeString("2013 Oct 15 Q4")},
4354 {true, UnicodeString("2013 Oct 16 4th quarter"), UnicodeStr ing("yyyy MMM dd QQQ"), UnicodeString("2013 Oct 16 Q4")},
4355 {false, UnicodeString("2013 Oct 17 4th quarter"), UnicodeStr ing("yyyy MMM dd QQQ"), UnicodeString("")},
4356 {false, UnicodeString("2013 Oct 18 Q4"), UnicodeStr ing("yyyy MMM dd QQQ"), UnicodeString("2013 Oct 18 Q4")},
4357 {true, UnicodeString("2013 Oct 19 Q4"), UnicodeStr ing("yyyy MMM dd qqqq"), UnicodeString("2013 Oct 19 4th quarter")},
4358 {true, UnicodeString("2013 Oct 20 4th quarter"), UnicodeStr ing("yyyy MMM dd qqqq"), UnicodeString("2013 Oct 20 4th quarter")},
4359 {false, UnicodeString("2013 Oct 21 Q4"), UnicodeStr ing("yyyy MMM dd qqqq"), UnicodeString("")},
4360 {false, UnicodeString("2013 Oct 22 4th quarter"), UnicodeStr ing("yyyy MMM dd qqqq"), UnicodeString("2013 Oct 22 4th quarter")},
4361 {false, UnicodeString("--end--"), UnicodeStr ing(""), UnicodeString("")},
4362 };
4363
4364 UErrorCode status = U_ZERO_ERROR;
4365 LocalPointer<Calendar> cal(Calendar::createInstance(status));
4366 if (U_FAILURE(status)) {
4367 dataerrln(UnicodeString("FAIL: Unable to create Calendar for default tim ezone and locale."));
4368 return;
4369 }
4370 const TestMultiPatternMatchItem * itemPtr;
4371 DateFormat* sdmft = DateFormat::createDateInstance();
4372 if (sdmft == NULL) {
4373 dataerrln(UnicodeString("FAIL: Unable to create DateFormat"));
4374 return;
4375 }
4376 for (itemPtr = items; itemPtr->parseString != "--end--"; itemPtr++ ) {
4377 status = U_ZERO_ERROR;
4378 ParsePosition pos(0);
4379 ((SimpleDateFormat*) sdmft)->applyPattern(itemPtr->pattern);
4380 if (U_FAILURE(status)) {
4381 dataerrln("Unable to create SimpleDateFormat - %s", u_errorName(statu s));
4382 continue;
4383 }
4384 sdmft->setBooleanAttribute(UDAT_PARSE_MULTIPLE_PATTERNS_FOR_MATCH, itemPt r->leniency, status);
4385 UDate d = sdmft->parse(itemPtr->parseString, pos);
4386
4387 if(itemPtr->expectedResult.length() == 0) {
4388 if(pos.getErrorIndex() != -1) {
4389 continue;
4390 } else {
4391 errln("error: unexpected parse success - " + itemPtr->parseStrin g +
4392 " - error index " + pos.getErrorIndex() +
4393 " - leniency " + itemPtr->leniency);
4394 continue;
4395 }
4396 }
4397 if(pos.getErrorIndex() != -1) {
4398 errln("error: parse error for string - " +itemPtr->parseString + " - - idx["+pos.getIndex()+"] errIdx["+pos.getErrorIndex()+"]");
4399 continue;
4400 }
4401
4402 UnicodeString formatResult("");
4403 sdmft->format(d, formatResult);
4404 if(formatResult.compare(itemPtr->expectedResult) != 0) {
4405 errln("error: unexpected format result. expected[" + itemPtr->expect edResult + "] but result was[" + formatResult + "]");
4406 } else {
4407 logln("formatted results match! - " + formatResult);
4408 }
4409 }
4410 delete sdmft;
4411 }
4412
4413 void DateFormatTest::TestParseLeniencyAPIs() {
4414 UErrorCode status = U_ZERO_ERROR;
4415 LocalPointer<DateFormat> dateFormat(DateFormat::createDateInstance());
4416 DateFormat *fmt = dateFormat.getAlias();
4417 if (fmt == NULL) {
4418 dataerrln("Failed calling dateFormat.getAlias()");
4419 return;
4420 }
4421
4422 assertTrue("isLenient default", fmt->isLenient());
4423 assertTrue("isCalendarLenient default", fmt->isCalendarLenient());
4424 assertTrue("ALLOW_WHITESPACE default", fmt->getBooleanAttribute(UDAT_PARSE_A LLOW_WHITESPACE, status));
4425 assertTrue("ALLOW_NUMERIC default", fmt->getBooleanAttribute(UDAT_PARSE_ALLO W_NUMERIC, status));
4426 assertTrue("PARTIAL_MATCH default", fmt->getBooleanAttribute(UDAT_PARSE_PART IAL_MATCH, status));
4427 assertTrue("MULTIPLE_PATTERNS default", fmt->getBooleanAttribute(UDAT_PARSE_ MULTIPLE_PATTERNS_FOR_MATCH, status));
4428
4429 // Set calendar to strict
4430 fmt->setCalendarLenient(FALSE);
4431
4432 assertFalse("isLeninent after setCalendarLenient(FALSE)", fmt->isLenient());
4433 assertFalse("isCalendarLenient after setCalendarLenient(FALSE)", fmt->isCale ndarLenient());
4434 assertTrue("ALLOW_WHITESPACE after setCalendarLenient(FALSE)", fmt->getBoole anAttribute(UDAT_PARSE_ALLOW_WHITESPACE, status));
4435 assertTrue("ALLOW_NUMERIC after setCalendarLenient(FALSE)", fmt->getBoolean Attribute(UDAT_PARSE_ALLOW_NUMERIC, status));
4436
4437 // Set to strict
4438 fmt->setLenient(FALSE);
4439
4440 assertFalse("isLeninent after setLenient(FALSE)", fmt->isLenient());
4441 assertFalse("isCalendarLenient after setLenient(FALSE)", fmt->isCalendarLeni ent());
4442 assertFalse("ALLOW_WHITESPACE after setLenient(FALSE)", fmt->getBooleanAttri bute(UDAT_PARSE_ALLOW_WHITESPACE, status));
4443 assertFalse("ALLOW_NUMERIC after setLenient(FALSE)", fmt->getBooleanAttribu te(UDAT_PARSE_ALLOW_NUMERIC, status));
4444 // These two boolean attributes are NOT affected according to the API specif ication
4445 assertTrue("PARTIAL_MATCH after setLenient(FALSE)", fmt->getBooleanAttribute (UDAT_PARSE_PARTIAL_MATCH, status));
4446 assertTrue("MULTIPLE_PATTERNS after setLenient(FALSE)", fmt->getBooleanAttri bute(UDAT_PARSE_MULTIPLE_PATTERNS_FOR_MATCH, status));
4447
4448 // Allow white space leniency
4449 fmt->setBooleanAttribute(UDAT_PARSE_ALLOW_WHITESPACE, TRUE, status);
4450
4451 assertFalse("isLeninent after ALLOW_WHITESPACE/TRUE", fmt->isLenient());
4452 assertFalse("isCalendarLenient after ALLOW_WHITESPACE/TRUE", fmt->isCalendar Lenient());
4453 assertTrue("ALLOW_WHITESPACE after ALLOW_WHITESPACE/TRUE", fmt->getBooleanAt tribute(UDAT_PARSE_ALLOW_WHITESPACE, status));
4454 assertFalse("ALLOW_NUMERIC after ALLOW_WHITESPACE/TRUE", fmt->getBooleanAtt ribute(UDAT_PARSE_ALLOW_NUMERIC, status));
4455
4456 // Set to lenient
4457 fmt->setLenient(TRUE);
4458
4459 assertTrue("isLenient after setLenient(TRUE)", fmt->isLenient());
4460 assertTrue("isCalendarLenient after setLenient(TRUE)", fmt->isCalendarLenien t());
4461 assertTrue("ALLOW_WHITESPACE after setLenient(TRUE)", fmt->getBooleanAttribu te(UDAT_PARSE_ALLOW_WHITESPACE, status));
4462 assertTrue("ALLOW_NUMERIC after setLenient(TRUE)", fmt->getBooleanAttribute( UDAT_PARSE_ALLOW_NUMERIC, status));
4463 }
4464
4465 void DateFormatTest::TestNumberFormatOverride() {
4466 UErrorCode status = U_ZERO_ERROR;
4467 UnicodeString fields = (UnicodeString) "M";
4468
4469 LocalPointer<SimpleDateFormat> fmt;
4470 fmt.adoptInstead(new SimpleDateFormat((UnicodeString)"MM d", status));
4471 if (!assertSuccess("SimpleDateFormat with pattern MM d", status)) {
4472 return;
4473 }
4474
4475 NumberFormat* check_nf = NumberFormat::createInstance(Locale("en_US"), statu s);
4476 assertSuccess("NumberFormat en_US", status);
4477
4478 // loop 100 times to test setter/getter
4479 for(int i=0; i<100; i++){
4480 fmt->adoptNumberFormat(fields, check_nf, status);
4481 assertSuccess("adoptNumberFormat check_nf", status);
4482
4483 const NumberFormat* get_nf = fmt->getNumberFormatForField('M');
4484 if (get_nf != check_nf) errln("FAIL: getter and setter do not work");
4485 }
4486 fmt->adoptNumberFormat(check_nf); // make sure using the same NF will not cr ash
4487
4488 const char * DATA [][2] = {
4489 { "", "\\u521D\\u516D \\u5341\\u4E94"},
4490 { "M", "\\u521D\\u516D 15"},
4491 { "Mo", "\\u521D\\u516D 15"},
4492 { "Md", "\\u521D\\u516D \\u5341\\u4E94"},
4493 { "MdMMd", "\\u521D\\u516D \\u5341\\u4E94"},
4494 { "mixed", "\\u521D\\u516D \\u5341\\u4E94"}
4495 };
4496
4497 UDate test_date = date(97, 6 - 1, 15);
4498
4499 for(int i=0; i < (int)(sizeof(DATA)/sizeof(DATA[0])); i++){
4500 fields = DATA[i][0];
4501
4502 LocalPointer<SimpleDateFormat> fmt;
4503 fmt.adoptInstead(new SimpleDateFormat((UnicodeString)"MM d", status));
4504 assertSuccess("SimpleDateFormat with pattern MM d", status);
4505 NumberFormat* overrideNF = NumberFormat::createInstance(Locale::createFr omName("zh@numbers=hanidays"),status);
4506 assertSuccess("NumberFormat zh@numbers=hanidays", status);
4507
4508 if (fields == (UnicodeString) "") { // use the one w/o fields
4509 fmt->adoptNumberFormat(overrideNF);
4510 } else if (fields == (UnicodeString) "mixed") { // set 1 field at first but then full override, both(M & d) should be override
4511 NumberFormat* singleOverrideNF = NumberFormat::createInstance(Locale ::createFromName("en@numbers=hebr"),status);
4512 assertSuccess("NumberFormat en@numbers=hebr", status);
4513
4514 fields = (UnicodeString) "M";
4515 fmt->adoptNumberFormat(fields, singleOverrideNF, status);
4516 assertSuccess("adoptNumberFormat singleOverrideNF", status);
4517
4518 fmt->adoptNumberFormat(overrideNF);
4519 } else if (fields == (UnicodeString) "Mo"){ // o is invlid field
4520 fmt->adoptNumberFormat(fields, overrideNF, status);
4521 if(status == U_INVALID_FORMAT_ERROR) {
4522 status = U_ZERO_ERROR;
4523 continue;
4524 }
4525 } else {
4526 fmt->adoptNumberFormat(fields, overrideNF, status);
4527 assertSuccess("adoptNumberFormat overrideNF", status);
4528 }
4529
4530 UnicodeString result;
4531 FieldPosition pos(0);
4532 fmt->format(test_date,result, pos);
4533
4534 UnicodeString expected = ((UnicodeString)DATA[i][1]).unescape();;
4535
4536 if (result != expected)
4537 errln("FAIL: Expected " + expected + " get: " + result);
4538 }
4539 }
4255 #endif /* #if !UCONFIG_NO_FORMATTING */ 4540 #endif /* #if !UCONFIG_NO_FORMATTING */
4256 4541
4257 //eof 4542 //eof
OLDNEW
« no previous file with comments | « source/test/intltest/dtfmttst.h ('k') | source/test/intltest/dtifmtts.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698