dtfmttst.cpp revision b13da9df870a61b11249bf741347908dbea0edd8
1b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru/******************************************************************** 2b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * COPYRIGHT: 3b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * Copyright (c) 1997-2007, International Business Machines Corporation and 4b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * others. All Rights Reserved. 5b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru ********************************************************************/ 6b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 7b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru#include "unicode/utypes.h" 8b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 9b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru#if !UCONFIG_NO_FORMATTING 10b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 11b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru#include "dtfmttst.h" 12b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru#include "unicode/timezone.h" 13b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru#include "unicode/gregocal.h" 14b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru#include "unicode/smpdtfmt.h" 15b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru#include "unicode/datefmt.h" 16b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru#include "unicode/simpletz.h" 17b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru#include "unicode/strenum.h" 18b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru#include "unicode/dtfmtsym.h" 19b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru#include "cmemory.h" 20b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru#include "cstring.h" 21b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru#include "caltest.h" // for fieldName 22b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru#include <stdio.h> // for sprintf 23b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 24b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru#ifdef U_WINDOWS 25b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru#include "windttst.h" 26b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru#endif 27b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 28b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru#define ARRAY_SIZE(array) (sizeof array / sizeof array[0]) 29b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 30b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru#define ASSERT_OK(status) if(U_FAILURE(status)) {errln(#status " = %s @ %s:%d", u_errorName(status), __FILE__, __LINE__); return; } 31b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 32b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru//-------------------------------------------------------------------- 33b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru// Time bomb - allows temporary behavior that expires at a given 34b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru// release 35b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru//-------------------------------------------------------------------- 36b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Querustatic const UVersionInfo ICU_39 = {3,9,0,0}; 37b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 38b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru// ***************************************************************************** 39b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru// class DateFormatTest 40b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru// ***************************************************************************** 41b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 42b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queruvoid DateFormatTest::runIndexedTest( int32_t index, UBool exec, const char* &name, char* /*par*/ ) 43b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru{ 44b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru // if (exec) logln((UnicodeString)"TestSuite DateFormatTest"); 45b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru switch (index) { 46b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru TESTCASE(0,TestEquals); 47b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru TESTCASE(1,TestTwoDigitYearDSTParse); 48b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru TESTCASE(2,TestFieldPosition); 49b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru TESTCASE(3,TestPartialParse994); 50b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru TESTCASE(4,TestRunTogetherPattern985); 51b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru TESTCASE(5,TestRunTogetherPattern917); 52b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru TESTCASE(6,TestCzechMonths459); 53b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru TESTCASE(7,TestLetterDPattern212); 54b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru TESTCASE(8,TestDayOfYearPattern195); 55b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru TESTCASE(9,TestQuotePattern161); 56b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru TESTCASE(10,TestBadInput135); 57b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru TESTCASE(11,TestBadInput135a); 58b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru TESTCASE(12,TestTwoDigitYear); 59b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru TESTCASE(13,TestDateFormatZone061); 60b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru TESTCASE(14,TestDateFormatZone146); 61b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru TESTCASE(15,TestLocaleDateFormat); 62b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru TESTCASE(16,TestWallyWedel); 63b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru TESTCASE(17,TestDateFormatCalendar); 64b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru TESTCASE(18,TestSpaceParsing); 65b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru TESTCASE(19,TestExactCountFormat); 66b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru TESTCASE(20,TestWhiteSpaceParsing); 67b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru TESTCASE(21,TestInvalidPattern); 68b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru TESTCASE(22,TestGeneral); 69b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru TESTCASE(23,TestGreekMay); 70b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru TESTCASE(24,TestGenericTime); 71b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru TESTCASE(25,TestGenericTimeZoneOrder); 72b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru TESTCASE(26,TestHost); 73b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru TESTCASE(27,TestEras); 74b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru TESTCASE(28,TestNarrowNames); 75b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru TESTCASE(29,TestStandAloneDays); 76b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru TESTCASE(30,TestStandAloneMonths); 77b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru TESTCASE(31,TestQuarters); 78b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru TESTCASE(32,TestZTimeZoneParsing); 79b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru TESTCASE(33,TestRelative); 80b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru TESTCASE(34,TestRelativeClone); 81b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru TESTCASE(35,TestHostClone); 82b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru TESTCASE(36,TestTimeZoneDisplayName); 83b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru /* 84b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru TESTCASE(37,TestRelativeError); 85b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru TESTCASE(38,TestRelativeOther); 86b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru */ 87b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru default: name = ""; break; 88b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru } 89b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru} 90b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 91b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru// Test written by Wally Wedel and emailed to me. 92b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queruvoid DateFormatTest::TestWallyWedel() 93b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru{ 94b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru UErrorCode status = U_ZERO_ERROR; 95b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru /* 96b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * Instantiate a TimeZone so we can get the ids. 97b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru */ 98b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru TimeZone *tz = new SimpleTimeZone(7,""); 99b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru /* 100b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * Computational variables. 101b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru */ 102b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru int32_t offset, hours, minutes, seconds; 103b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru /* 104b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * Instantiate a SimpleDateFormat set up to produce a full time 105b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru zone name. 106b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru */ 107b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru SimpleDateFormat *sdf = new SimpleDateFormat((UnicodeString)"zzzz", status); 108b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru /* 109b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * A String array for the time zone ids. 110b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru */ 111b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru int32_t ids_length; 112b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru StringEnumeration* ids = TimeZone::createEnumeration(); 113b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru ids_length = ids->count(status); 114b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru /* 115b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * How many ids do we have? 116b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru */ 117b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru logln("Time Zone IDs size: %d", ids_length); 118b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru /* 119b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * Column headings (sort of) 120b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru */ 121b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru logln("Ordinal ID offset(h:m) name"); 122b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru /* 123b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * Loop through the tzs. 124b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru */ 125b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru UDate today = Calendar::getNow(); 126b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru Calendar *cal = Calendar::createInstance(status); 127b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru for (int32_t i = 0; i < ids_length; i++) { 128b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru // logln(i + " " + ids[i]); 129b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru const UnicodeString* id = ids->snext(status); 130b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru TimeZone *ttz = TimeZone::createTimeZone(*id); 131b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru // offset = ttz.getRawOffset(); 132b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru cal->setTimeZone(*ttz); 133b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru cal->setTime(today, status); 134b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru offset = cal->get(UCAL_ZONE_OFFSET, status) + cal->get(UCAL_DST_OFFSET, status); 135b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru // logln(i + " " + ids[i] + " offset " + offset); 136b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru const char* sign = "+"; 137b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru if (offset < 0) { 138b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru sign = "-"; 139b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru offset = -offset; 140b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru } 141b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru hours = offset/3600000; 142b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru minutes = (offset%3600000)/60000; 143b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru seconds = (offset%60000)/1000; 144b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru UnicodeString dstOffset = (UnicodeString)"" + sign + (hours < 10 ? "0" : "") + 145b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru (int32_t)hours + ":" + (minutes < 10 ? "0" : "") + (int32_t)minutes; 146b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru if (seconds != 0) { 147b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru dstOffset = dstOffset + ":" + (seconds < 10 ? "0" : "") + seconds; 148b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru } 149b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru /* 150b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * Instantiate a date so we can display the time zone name. 151b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru */ 152b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru sdf->setTimeZone(*ttz); 153b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru /* 154b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * Format the output. 155b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru */ 156b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru UnicodeString fmtOffset; 157b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru FieldPosition pos(0); 158b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru sdf->format(today,fmtOffset, pos); 159b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru // UnicodeString fmtOffset = tzS.toString(); 160b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru UnicodeString *fmtDstOffset = 0; 161b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru if (fmtOffset.startsWith("GMT")) 162b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { 163b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru //fmtDstOffset = fmtOffset->substring(3); 164b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru fmtDstOffset = new UnicodeString(); 165b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru fmtOffset.extract(3, fmtOffset.length(), *fmtDstOffset); 166b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru } 167b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru /* 168b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * Show our result. 169b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru */ 170b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru UBool ok = fmtDstOffset == 0 || *fmtDstOffset == dstOffset; 171b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru if (ok) 172b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { 173b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru logln(UnicodeString() + i + " " + *id + " " + dstOffset + 174b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru " " + fmtOffset + 175b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru (fmtDstOffset != 0 ? " ok" : " ?")); 176b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru } 177b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru else 178b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { 179b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru errln(UnicodeString() + i + " " + *id + " " + dstOffset + 180b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru " " + fmtOffset + " *** FAIL ***"); 181b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru } 182b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru delete ttz; 183b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru delete fmtDstOffset; 184b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru } 185b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru delete cal; 186b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru // delete ids; // TODO: BAD API 187b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru delete ids; 188b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru delete sdf; 189b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru delete tz; 190b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru} 191b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 192b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru// ------------------------------------- 193b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 194b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru/** 195b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * Test operator== 196b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru */ 197b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queruvoid 198b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste QueruDateFormatTest::TestEquals() 199b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru{ 200b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru DateFormat* fmtA = DateFormat::createDateTimeInstance(DateFormat::MEDIUM, DateFormat::FULL); 201b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru DateFormat* fmtB = DateFormat::createDateTimeInstance(DateFormat::MEDIUM, DateFormat::FULL); 202b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru if ( fmtA == NULL || fmtB == NULL){ 203b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru dataerrln("Error calling DateFormat::createDateTimeInstance"); 204b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru delete fmtA; 205b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru delete fmtB; 206b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru return; 207b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru } 208b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 209b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru if (!(*fmtA == *fmtB)) errln((UnicodeString)"FAIL"); 210b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru delete fmtA; 211b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru delete fmtB; 212b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 213b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru TimeZone* test = TimeZone::createTimeZone("PDT"); 214b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru delete test; 215b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru} 216b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 217b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru// ------------------------------------- 218b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 219b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru/** 220b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * Test the parsing of 2-digit years. 221b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru */ 222b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queruvoid 223b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste QueruDateFormatTest::TestTwoDigitYearDSTParse(void) 224b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru{ 225b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru UErrorCode status = U_ZERO_ERROR; 226b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru SimpleDateFormat* fullFmt = new SimpleDateFormat((UnicodeString)"EEE MMM dd HH:mm:ss.SSS zzz yyyy G", status); 227b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru SimpleDateFormat *fmt = new SimpleDateFormat((UnicodeString)"dd-MMM-yy h:mm:ss 'o''clock' a z", Locale::getEnglish(), status); 228b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru //DateFormat* fmt = DateFormat::createDateTimeInstance(DateFormat::MEDIUM, DateFormat::FULL, Locale::ENGLISH); 229b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru UnicodeString* s = new UnicodeString("03-Apr-04 2:20:47 o'clock AM PST", ""); 230b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru TimeZone* defaultTZ = TimeZone::createDefault(); 231b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru TimeZone* PST = TimeZone::createTimeZone("PST"); 232b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru int32_t defaultOffset = defaultTZ->getRawOffset(); 233b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru int32_t PSTOffset = PST->getRawOffset(); 234b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru int32_t hour = 2 + (defaultOffset - PSTOffset) / (60*60*1000); 235b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru // hour is the expected hour of day, in units of seconds 236b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru hour = ((hour < 0) ? hour + 24 : hour) * 60*60; 237b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 238b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru UnicodeString str; 239b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 240b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru if(U_FAILURE(status)) { 241b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru errln("Could not set up test. exitting"); 242b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru return; 243b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru } 244b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 245b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru UDate d = fmt->parse(*s, status); 246b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru logln(*s + " P> " + ((DateFormat*)fullFmt)->format(d, str)); 247b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru int32_t y, m, day, hr, min, sec; 248b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru dateToFields(d, y, m, day, hr, min, sec); 249b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru hour += defaultTZ->inDaylightTime(d, status) ? 1 : 0; 250b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru hr = hr*60*60; 251b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru if (hr != hour) 252b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru errln((UnicodeString)"FAIL: Should parse to hour " + hour + " but got " + hr); 253b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 254b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru if (U_FAILURE(status)) 255b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru errln((UnicodeString)"FAIL: " + (int32_t)status); 256b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 257b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru delete s; 258b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru delete fmt; 259b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru delete fullFmt; 260b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru delete PST; 261b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru delete defaultTZ; 262b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru} 263b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 264b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru// ------------------------------------- 265b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 266b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste QueruUChar toHexString(int32_t i) { return (UChar)(i + (i < 10 ? 0x30 : (0x41 - 10))); } 267b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 268b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste QueruUnicodeString& 269b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste QueruDateFormatTest::escape(UnicodeString& s) 270b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru{ 271b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru UnicodeString buf; 272b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru for (int32_t i=0; i<s.length(); ++i) 273b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { 274b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru UChar c = s[(int32_t)i]; 275b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru if (c <= (UChar)0x7F) buf += c; 276b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru else { 277b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru buf += (UChar)0x5c; buf += (UChar)0x55; 278b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru buf += toHexString((c & 0xF000) >> 12); 279b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru buf += toHexString((c & 0x0F00) >> 8); 280b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru buf += toHexString((c & 0x00F0) >> 4); 281b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru buf += toHexString(c & 0x000F); 282b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru } 283b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru } 284b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru return (s = buf); 285b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru} 286b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 287b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru// ------------------------------------- 288b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 289b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru/** 290b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * This MUST be kept in sync with DateFormatSymbols.gPatternChars. 291b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru */ 292b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Querustatic const char* PATTERN_CHARS = "GyMdkHmsSEDFwWahKzYeugAZvcLQqV"; 293b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 294b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru/** 295b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * A list of the names of all the fields in DateFormat. 296b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * This MUST be kept in sync with DateFormat. 297b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru */ 298b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Querustatic const char* DATEFORMAT_FIELD_NAMES[] = { 299b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "ERA_FIELD", 300b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "YEAR_FIELD", 301b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "MONTH_FIELD", 302b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "DATE_FIELD", 303b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "HOUR_OF_DAY1_FIELD", 304b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "HOUR_OF_DAY0_FIELD", 305b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "MINUTE_FIELD", 306b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "SECOND_FIELD", 307b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "MILLISECOND_FIELD", 308b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "DAY_OF_WEEK_FIELD", 309b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "DAY_OF_YEAR_FIELD", 310b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "DAY_OF_WEEK_IN_MONTH_FIELD", 311b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "WEEK_OF_YEAR_FIELD", 312b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "WEEK_OF_MONTH_FIELD", 313b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "AM_PM_FIELD", 314b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "HOUR1_FIELD", 315b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "HOUR0_FIELD", 316b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "TIMEZONE_FIELD", 317b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "YEAR_WOY_FIELD", 318b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "DOW_LOCAL_FIELD", 319b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "EXTENDED_YEAR_FIELD", 320b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "JULIAN_DAY_FIELD", 321b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "MILLISECONDS_IN_DAY_FIELD", 322b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "TIMEZONE_RFC_FIELD", 323b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "GENERIC_TIMEZONE_FIELD", 324b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "STAND_ALONE_DAY_FIELD", 325b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "STAND_ALONE_MONTH_FIELD", 326b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "QUARTER_FIELD", 327b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "STAND_ALONE_QUARTER_FIELD", 328b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "TIMEZONE_SPECIAL_FIELD" 329b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru}; 330b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 331b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Querustatic const int32_t DATEFORMAT_FIELD_NAMES_LENGTH = 332b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru sizeof(DATEFORMAT_FIELD_NAMES) / sizeof(DATEFORMAT_FIELD_NAMES[0]); 333b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 334b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru/** 335b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * Verify that returned field position indices are correct. 336b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru */ 337b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queruvoid DateFormatTest::TestFieldPosition() { 338b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru UErrorCode ec = U_ZERO_ERROR; 339b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru int32_t i, j, exp; 340b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru UnicodeString buf; 341b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 342b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru // Verify data 343b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru DateFormatSymbols rootSyms(Locale(""), ec); 344b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru assertSuccess("DateFormatSymbols", ec); 345b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 346b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru // local pattern chars data is not longer loaded 347b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru // from icu locale bundle 348b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru assertEquals("patternChars", PATTERN_CHARS, rootSyms.getLocalPatternChars(buf)); 349b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru assertEquals("patternChars", PATTERN_CHARS, DateFormatSymbols::getPatternUChars()); 350b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru assertTrue("DATEFORMAT_FIELD_NAMES", DATEFORMAT_FIELD_NAMES_LENGTH == UDAT_FIELD_COUNT); 351b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru assertTrue("Data", UDAT_FIELD_COUNT == uprv_strlen(PATTERN_CHARS)); 352b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 353b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru // Create test formatters 354b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru const int32_t COUNT = 4; 355b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru DateFormat* dateFormats[COUNT]; 356b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru dateFormats[0] = DateFormat::createDateTimeInstance(DateFormat::kFull, DateFormat::kFull, Locale::getUS()); 357b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru dateFormats[1] = DateFormat::createDateTimeInstance(DateFormat::kFull, DateFormat::kFull, Locale::getFrance()); 358b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru // Make the pattern "G y M d..." 359b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru buf.remove().append(PATTERN_CHARS); 360b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru for (j=buf.length()-1; j>=0; --j) buf.insert(j, (UChar)32/*' '*/); 361b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru dateFormats[2] = new SimpleDateFormat(buf, Locale::getUS(), ec); 362b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru // Make the pattern "GGGG yyyy MMMM dddd..." 363b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru for (j=buf.length()-1; j>=0; j-=2) { 364b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru for (i=0; i<3; ++i) { 365b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru buf.insert(j, buf.charAt(j)); 366b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru } 367b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru } 368b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru dateFormats[3] = new SimpleDateFormat(buf, Locale::getUS(), ec); 369b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru if(U_FAILURE(ec)){ 370b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru errln(UnicodeString("Could not create SimpleDateFormat object for locale en_US. Error: " )+ UnicodeString(u_errorName(ec))); 371b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru return; 372b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru } 373b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru UDate aug13 = 871508052513.0; 374b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 375b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru // Expected output field values for above DateFormats on aug13 376b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru // Fields are given in order of DateFormat field number 377b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru const char* EXPECTED[] = { 378b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "", "1997", "August", "13", "", "", "34", "12", "", 379b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "Wednesday", "", "", "", "", "PM", "2", "", "", "", "", "", "", "", "", "PT", "", "", "", "","", 380b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 381b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "", "1997", "ao\\u00FBt", "13", "", "14", "34", "12", "", 382b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "mercredi", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "\\u00C9tats-Unis (Los Angeles)", "", "", "", "", "", 383b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 384b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "AD", "1997", "8", "13", "14", "14", "34", "12", "5", 385b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "Wed", "225", "2", "33", "3", "PM", "2", "2", "PDT", "1997", "4", "1997", "2450674", "52452513", "-0700", "PT", "4", "8", "3", "3","PDT", 386b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 387b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "Anno Domini", "1997", "August", "0013", "0014", "0014", "0034", "0012", "5130", 388b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "Wednesday", "0225", "0002", "0033", "0003", "PM", "0002", "0002", "Pacific Daylight Time", "1997", "0004", "1997", "2450674", "52452513", "GMT-07:00", 389b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "Pacific Time", "Wednesday", "August", "3rd quarter", "3rd quarter", "United States (Los Angeles)" 390b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru }; 391b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 392b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru const int32_t EXPECTED_LENGTH = sizeof(EXPECTED)/sizeof(EXPECTED[0]); 393b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 394b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru assertTrue("data size", EXPECTED_LENGTH == COUNT * UDAT_FIELD_COUNT); 395b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 396b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru TimeZone* PT = TimeZone::createTimeZone("America/Los_Angeles"); 397b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru for (j = 0, exp = 0; j < COUNT; ++j) { 398b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru // String str; 399b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru DateFormat* df = dateFormats[j]; 400b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru df->setTimeZone(*PT); 401b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru if (df->getDynamicClassID() == SimpleDateFormat::getStaticClassID()) { 402b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru logln(" Pattern = " + ((SimpleDateFormat*) df)->toPattern(buf.remove())); 403b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru } else { 404b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru logln(" Pattern = ? (not a SimpleDateFormat)"); 405b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru } 406b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru logln((UnicodeString)" Result = " + df->format(aug13, buf.remove())); 407b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 408b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru for (i = 0; i < UDAT_FIELD_COUNT; ++i, ++exp) { 409b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru FieldPosition pos(i); 410b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru buf.remove(); 411b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru df->format(aug13, buf, pos); 412b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru UnicodeString field; 413b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru buf.extractBetween(pos.getBeginIndex(), pos.getEndIndex(), field); 414b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru assertEquals((UnicodeString)"field #" + i + " " + DATEFORMAT_FIELD_NAMES[i], 415b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru ctou(EXPECTED[exp]), field); 416b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru } 417b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru } 418b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 419b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru for (i=0; i<COUNT; ++i) { 420b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru delete dateFormats[i]; 421b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru } 422b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru delete PT; 423b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru} 424b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 425b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru// ------------------------------------- 426b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 427b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru/** 428b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * General parse/format tests. Add test cases as needed. 429b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru */ 430b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queruvoid DateFormatTest::TestGeneral() { 431b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru const char* DATA[] = { 432b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "yyyy MM dd HH:mm:ss.SSS", 433b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 434b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru // Milliseconds are left-justified, since they format as fractions of a second 435b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "y/M/d H:mm:ss.S", "fp", "2004 03 10 16:36:31.567", "2004/3/10 16:36:31.6", "2004 03 10 16:36:31.600", 436b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "y/M/d H:mm:ss.SS", "fp", "2004 03 10 16:36:31.567", "2004/3/10 16:36:31.57", "2004 03 10 16:36:31.570", 437b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "y/M/d H:mm:ss.SSS", "F", "2004 03 10 16:36:31.567", "2004/3/10 16:36:31.567", 438b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "y/M/d H:mm:ss.SSSS", "pf", "2004/3/10 16:36:31.5679", "2004 03 10 16:36:31.568", "2004/3/10 16:36:31.5680", 439b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru }; 440b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru expect(DATA, ARRAY_SIZE(DATA), Locale("en", "", "")); 441b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru} 442b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 443b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru// ------------------------------------- 444b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 445b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru/** 446b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * Verify that strings which contain incomplete specifications are parsed 447b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * correctly. In some instances, this means not being parsed at all, and 448b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * returning an appropriate error. 449b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru */ 450b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queruvoid 451b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste QueruDateFormatTest::TestPartialParse994() 452b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru{ 453b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru UErrorCode status = U_ZERO_ERROR; 454b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru SimpleDateFormat* f = new SimpleDateFormat(status); 455b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru ASSERT_OK(status); 456b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru UDate null = 0; 457b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru tryPat994(f, "yy/MM/dd HH:mm:ss", "97/01/17 10:11:42", date(97, 1 - 1, 17, 10, 11, 42)); 458b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru tryPat994(f, "yy/MM/dd HH:mm:ss", "97/01/17 10:", null); 459b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru tryPat994(f, "yy/MM/dd HH:mm:ss", "97/01/17 10", null); 460b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru tryPat994(f, "yy/MM/dd HH:mm:ss", "97/01/17 ", null); 461b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru tryPat994(f, "yy/MM/dd HH:mm:ss", "97/01/17", null); 462b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru if (U_FAILURE(status)) errln((UnicodeString)"FAIL: UErrorCode received during test: " + (int32_t)status); 463b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru delete f; 464b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru} 465b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 466b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru// ------------------------------------- 467b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 468b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queruvoid 469b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste QueruDateFormatTest::tryPat994(SimpleDateFormat* format, const char* pat, const char* str, UDate expected) 470b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru{ 471b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru UErrorCode status = U_ZERO_ERROR; 472b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru UDate null = 0; 473b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru logln(UnicodeString("Pattern \"") + pat + "\" String \"" + str + "\""); 474b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru //try { 475b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru format->applyPattern(pat); 476b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru UDate date = format->parse(str, status); 477b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru if (U_FAILURE(status) || date == null) 478b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { 479b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru logln((UnicodeString)"ParseException: " + (int32_t)status); 480b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru if (expected != null) errln((UnicodeString)"FAIL: Expected " + dateToString(expected)); 481b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru } 482b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru else 483b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { 484b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru UnicodeString f; 485b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru ((DateFormat*)format)->format(date, f); 486b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru logln(UnicodeString(" parse(") + str + ") -> " + dateToString(date)); 487b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru logln((UnicodeString)" format -> " + f); 488b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru if (expected == null || 489b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru !(date == expected)) errln((UnicodeString)"FAIL: Expected null");//" + expected); 490b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru if (!(f == str)) errln(UnicodeString("FAIL: Expected ") + str); 491b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru } 492b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru //} 493b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru //catch(ParseException e) { 494b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru // logln((UnicodeString)"ParseException: " + e.getMessage()); 495b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru // if (expected != null) errln((UnicodeString)"FAIL: Expected " + dateToString(expected)); 496b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru //} 497b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru //catch(Exception e) { 498b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru // errln((UnicodeString)"*** Exception:"); 499b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru // e.printStackTrace(); 500b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru //} 501b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru} 502b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 503b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru// ------------------------------------- 504b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 505b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru/** 506b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * Verify the behavior of patterns in which digits for different fields run together 507b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * without intervening separators. 508b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru */ 509b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queruvoid 510b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste QueruDateFormatTest::TestRunTogetherPattern985() 511b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru{ 512b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru UErrorCode status = U_ZERO_ERROR; 513b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru UnicodeString format("yyyyMMddHHmmssSSS"); 514b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru UnicodeString now, then; 515b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru //UBool flag; 516b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru SimpleDateFormat *formatter = new SimpleDateFormat(format, status); 517b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru ASSERT_OK(status); 518b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru UDate date1 = Calendar::getNow(); 519b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru ((DateFormat*)formatter)->format(date1, now); 520b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru logln(now); 521b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru ParsePosition pos(0); 522b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru UDate date2 = formatter->parse(now, pos); 523b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru if (date2 == 0) then = "Parse stopped at " + pos.getIndex(); 524b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru else ((DateFormat*)formatter)->format(date2, then); 525b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru logln(then); 526b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru if (!(date2 == date1)) errln((UnicodeString)"FAIL"); 527b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru delete formatter; 528b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru if (U_FAILURE(status)) errln((UnicodeString)"FAIL: UErrorCode received during test: " + (int32_t)status); 529b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru} 530b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 531b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru// ------------------------------------- 532b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 533b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru/** 534b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * Verify the behavior of patterns in which digits for different fields run together 535b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * without intervening separators. 536b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru */ 537b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queruvoid 538b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste QueruDateFormatTest::TestRunTogetherPattern917() 539b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru{ 540b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru UErrorCode status = U_ZERO_ERROR; 541b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru SimpleDateFormat* fmt; 542b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru UnicodeString myDate; 543b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru fmt = new SimpleDateFormat((UnicodeString)"yyyy/MM/dd", status); 544b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru ASSERT_OK(status); 545b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru myDate = "1997/02/03"; 546b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru testIt917(fmt, myDate, date(97, 2 - 1, 3)); 547b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru delete fmt; 548b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru fmt = new SimpleDateFormat((UnicodeString)"yyyyMMdd", status); 549b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru myDate = "19970304"; 550b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru testIt917(fmt, myDate, date(97, 3 - 1, 4)); 551b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru delete fmt; 552b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru if (U_FAILURE(status)) errln((UnicodeString)"FAIL: UErrorCode received during test: " + (int32_t)status); 553b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru} 554b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 555b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru// ------------------------------------- 556b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 557b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queruvoid 558b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste QueruDateFormatTest::testIt917(SimpleDateFormat* fmt, UnicodeString& str, UDate expected) 559b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru{ 560b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru UErrorCode status = U_ZERO_ERROR; 561b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru UnicodeString pattern; 562b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru logln((UnicodeString)"pattern=" + fmt->toPattern(pattern) + " string=" + str); 563b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru Formattable o; 564b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru //try { 565b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru ((Format*)fmt)->parseObject(str, o, status); 566b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru //} 567b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru if (U_FAILURE(status)) return; 568b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru //catch(ParseException e) { 569b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru // e.printStackTrace(); 570b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru // return; 571b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru //} 572b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru logln((UnicodeString)"Parsed object: " + dateToString(o.getDate())); 573b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru if (!(o.getDate() == expected)) errln((UnicodeString)"FAIL: Expected " + dateToString(expected)); 574b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru UnicodeString formatted; ((Format*)fmt)->format(o, formatted, status); 575b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru logln((UnicodeString)"Formatted string: " + formatted); 576b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru if (!(formatted == str)) errln((UnicodeString)"FAIL: Expected " + str); 577b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru if (U_FAILURE(status)) errln((UnicodeString)"FAIL: UErrorCode received during test: " + (int32_t)status); 578b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru} 579b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 580b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru// ------------------------------------- 581b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 582b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru/** 583b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * Verify the handling of Czech June and July, which have the unique attribute that 584b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * one is a proper prefix substring of the other. 585b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru */ 586b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queruvoid 587b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste QueruDateFormatTest::TestCzechMonths459() 588b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru{ 589b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru UErrorCode status = U_ZERO_ERROR; 590b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru DateFormat* fmt = DateFormat::createDateInstance(DateFormat::FULL, Locale("cs", "", "")); 591b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru if (fmt == NULL){ 592b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru dataerrln("Error calling DateFormat::createDateInstance()"); 593b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru return; 594b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru } 595b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 596b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru UnicodeString pattern; 597b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru logln((UnicodeString)"Pattern " + ((SimpleDateFormat*) fmt)->toPattern(pattern)); 598b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru UDate june = date(97, UCAL_JUNE, 15); 599b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru UDate july = date(97, UCAL_JULY, 15); 600b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru UnicodeString juneStr; fmt->format(june, juneStr); 601b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru UnicodeString julyStr; fmt->format(july, julyStr); 602b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru //try { 603b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru logln((UnicodeString)"format(June 15 1997) = " + juneStr); 604b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru UDate d = fmt->parse(juneStr, status); 605b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru UnicodeString s; fmt->format(d, s); 606b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru int32_t month,yr,day,hr,min,sec; dateToFields(d,yr,month,day,hr,min,sec); 607b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru logln((UnicodeString)" -> parse -> " + s + " (month = " + month + ")"); 608b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru if (month != UCAL_JUNE) errln((UnicodeString)"FAIL: Month should be June"); 609b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru logln((UnicodeString)"format(July 15 1997) = " + julyStr); 610b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru d = fmt->parse(julyStr, status); 611b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru fmt->format(d, s); 612b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru dateToFields(d,yr,month,day,hr,min,sec); 613b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru logln((UnicodeString)" -> parse -> " + s + " (month = " + month + ")"); 614b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru if (month != UCAL_JULY) errln((UnicodeString)"FAIL: Month should be July"); 615b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru //} 616b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru //catch(ParseException e) { 617b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru if (U_FAILURE(status)) 618b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru errln((UnicodeString)"Exception: " + (int32_t)status); 619b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru //} 620b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru delete fmt; 621b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru} 622b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 623b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru// ------------------------------------- 624b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 625b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru/** 626b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * Test the handling of 'D' in patterns. 627b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru */ 628b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queruvoid 629b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste QueruDateFormatTest::TestLetterDPattern212() 630b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru{ 631b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru UErrorCode status = U_ZERO_ERROR; 632b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru UnicodeString dateString("1995-040.05:01:29"); 633b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru UnicodeString bigD("yyyy-DDD.hh:mm:ss"); 634b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru UnicodeString littleD("yyyy-ddd.hh:mm:ss"); 635b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru UDate expLittleD = date(95, 0, 1, 5, 1, 29); 636b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru UDate expBigD = expLittleD + 39 * 24 * 3600000.0; 637b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru expLittleD = expBigD; // Expect the same, with default lenient parsing 638b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru logln((UnicodeString)"dateString= " + dateString); 639b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru SimpleDateFormat *formatter = new SimpleDateFormat(bigD, status); 640b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru ASSERT_OK(status); 641b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru ParsePosition pos(0); 642b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru UDate myDate = formatter->parse(dateString, pos); 643b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru logln((UnicodeString)"Using " + bigD + " -> " + myDate); 644b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru if (myDate != expBigD) errln((UnicodeString)"FAIL: Expected " + dateToString(expBigD)); 645b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru delete formatter; 646b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru formatter = new SimpleDateFormat(littleD, status); 647b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru ASSERT_OK(status); 648b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru pos = ParsePosition(0); 649b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru myDate = formatter->parse(dateString, pos); 650b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru logln((UnicodeString)"Using " + littleD + " -> " + dateToString(myDate)); 651b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru if (myDate != expLittleD) errln((UnicodeString)"FAIL: Expected " + dateToString(expLittleD)); 652b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru delete formatter; 653b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru if (U_FAILURE(status)) errln((UnicodeString)"FAIL: UErrorCode received during test: " + (int32_t)status); 654b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru} 655b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 656b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru// ------------------------------------- 657b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 658b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru/** 659b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * Test the day of year pattern. 660b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru */ 661b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queruvoid 662b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste QueruDateFormatTest::TestDayOfYearPattern195() 663b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru{ 664b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru UErrorCode status = U_ZERO_ERROR; 665b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru UDate today = Calendar::getNow(); 666b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru int32_t year,month,day,hour,min,sec; dateToFields(today,year,month,day,hour,min,sec); 667b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru UDate expected = date(year, month, day); 668b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru logln((UnicodeString)"Test Date: " + dateToString(today)); 669b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru SimpleDateFormat* sdf = (SimpleDateFormat*)DateFormat::createDateInstance(); 670b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru if (sdf == NULL){ 671b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru dataerrln("Error calling DateFormat::createDateInstance()"); 672b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru return; 673b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru } 674b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru tryPattern(*sdf, today, 0, expected); 675b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru tryPattern(*sdf, today, "G yyyy DDD", expected); 676b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru delete sdf; 677b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru if (U_FAILURE(status)) errln((UnicodeString)"FAIL: UErrorCode received during test: " + (int32_t)status); 678b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru} 679b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 680b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru// ------------------------------------- 681b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 682b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queruvoid 683b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste QueruDateFormatTest::tryPattern(SimpleDateFormat& sdf, UDate d, const char* pattern, UDate expected) 684b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru{ 685b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru UErrorCode status = U_ZERO_ERROR; 686b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru if (pattern != 0) sdf.applyPattern(pattern); 687b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru UnicodeString thePat; 688b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru logln((UnicodeString)"pattern: " + sdf.toPattern(thePat)); 689b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru UnicodeString formatResult; (*(DateFormat*)&sdf).format(d, formatResult); 690b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru logln((UnicodeString)" format -> " + formatResult); 691b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru // try { 692b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru UDate d2 = sdf.parse(formatResult, status); 693b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru logln((UnicodeString)" parse(" + formatResult + ") -> " + dateToString(d2)); 694b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru if (d2 != expected) errln((UnicodeString)"FAIL: Expected " + dateToString(expected)); 695b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru UnicodeString format2; (*(DateFormat*)&sdf).format(d2, format2); 696b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru logln((UnicodeString)" format -> " + format2); 697b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru if (!(formatResult == format2)) errln((UnicodeString)"FAIL: Round trip drift"); 698b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru //} 699b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru //catch(Exception e) { 700b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru if (U_FAILURE(status)) 701b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru errln((UnicodeString)"Error: " + (int32_t)status); 702b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru //} 703b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru} 704b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 705b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru// ------------------------------------- 706b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 707b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru/** 708b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * Test the handling of single quotes in patterns. 709b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru */ 710b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queruvoid 711b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste QueruDateFormatTest::TestQuotePattern161() 712b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru{ 713b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru UErrorCode status = U_ZERO_ERROR; 714b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru SimpleDateFormat* formatter = new SimpleDateFormat((UnicodeString)"MM/dd/yyyy 'at' hh:mm:ss a zzz", status); 715b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru ASSERT_OK(status); 716b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru UDate currentTime_1 = date(97, UCAL_AUGUST, 13, 10, 42, 28); 717b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru UnicodeString dateString; ((DateFormat*)formatter)->format(currentTime_1, dateString); 718b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru UnicodeString exp("08/13/1997 at 10:42:28 AM "); 719b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru logln((UnicodeString)"format(" + dateToString(currentTime_1) + ") = " + dateString); 720b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru if (0 != dateString.compareBetween(0, exp.length(), exp, 0, exp.length())) errln((UnicodeString)"FAIL: Expected " + exp); 721b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru delete formatter; 722b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru if (U_FAILURE(status)) errln((UnicodeString)"FAIL: UErrorCode received during test: " + (int32_t)status); 723b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru} 724b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 725b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru// ------------------------------------- 726b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 727b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru/** 728b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * Verify the correct behavior when handling invalid input strings. 729b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru */ 730b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queruvoid 731b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste QueruDateFormatTest::TestBadInput135() 732b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru{ 733b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru UErrorCode status = U_ZERO_ERROR; 734b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru DateFormat::EStyle looks[] = { 735b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru DateFormat::SHORT, DateFormat::MEDIUM, DateFormat::LONG, DateFormat::FULL 736b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru }; 737b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru int32_t looks_length = (int32_t)(sizeof(looks) / sizeof(looks[0])); 738b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru const char* strings[] = { 739b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "Mar 15", "Mar 15 1997", "asdf", "3/1/97 1:23:", "3/1/00 1:23:45 AM" 740b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru }; 741b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru int32_t strings_length = (int32_t)(sizeof(strings) / sizeof(strings[0])); 742b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru DateFormat *full = DateFormat::createDateTimeInstance(DateFormat::LONG, DateFormat::LONG); 743b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru if(full==NULL) { 744b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru errln("could not create date time instance"); 745b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru return; 746b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru } 747b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru UnicodeString expected("March 1, 2000 1:23:45 AM "); 748b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru for (int32_t i = 0; i < strings_length;++i) { 749b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru const char* text = strings[i]; 750b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru for (int32_t j = 0; j < looks_length;++j) { 751b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru DateFormat::EStyle dateLook = looks[j]; 752b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru for (int32_t k = 0; k < looks_length;++k) { 753b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru DateFormat::EStyle timeLook = looks[k]; 754b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru DateFormat *df = DateFormat::createDateTimeInstance(dateLook, timeLook); 755b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru if (df == NULL){ 756b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru dataerrln("Error calling DateFormat::createDateTimeInstance()"); 757b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru continue; 758b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru } 759b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru UnicodeString prefix = UnicodeString(text) + ", " + dateLook + "/" + timeLook + ": "; 760b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru //try { 761b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru UDate when = df->parse(text, status); 762b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru if (when == 0 && U_SUCCESS(status)) { 763b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru errln(prefix + "SHOULD NOT HAPPEN: parse returned 0."); 764b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru continue; 765b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru } 766b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru if (U_SUCCESS(status)) 767b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { 768b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru UnicodeString format; 769b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru full->format(when, format); 770b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru logln(prefix + "OK: " + format); 771b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru if (0!=format.compareBetween(0, expected.length(), expected, 0, expected.length())) 772b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru errln((UnicodeString)"FAIL: Expected " + expected + " got " + format); 773b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru } 774b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru //} 775b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru //catch(ParseException e) { 776b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru else 777b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru status = U_ZERO_ERROR; 778b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru //} 779b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru //catch(StringIndexOutOfBoundsException e) { 780b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru // errln(prefix + "SHOULD NOT HAPPEN: " + (int)status); 781b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru //} 782b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru delete df; 783b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru } 784b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru } 785b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru } 786b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru delete full; 787b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru if (U_FAILURE(status)) 788b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru errln((UnicodeString)"FAIL: UErrorCode received during test: " + (int32_t)status); 789b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru} 790b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 791b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Querustatic const char* const parseFormats[] = { 792b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "MMMM d, yyyy", 793b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "MMMM d yyyy", 794b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "M/d/yy", 795b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "d MMMM, yyyy", 796b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "d MMMM yyyy", 797b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "d MMMM", 798b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "MMMM d", 799b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "yyyy", 800b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "h:mm a MMMM d, yyyy" 801b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru}; 802b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 803b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Querustatic const char* const inputStrings[] = { 804b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "bogus string", 0, 0, 0, 0, 0, 0, 0, 0, 0, 805b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "April 1, 1997", "April 1, 1997", 0, 0, 0, 0, 0, "April 1", 0, 0, 806b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "Jan 1, 1970", "January 1, 1970", 0, 0, 0, 0, 0, "January 1", 0, 0, 807b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "Jan 1 2037", 0, "January 1 2037", 0, 0, 0, 0, "January 1", 0, 0, 808b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "1/1/70", 0, 0, "1/1/70", 0, 0, 0, 0, "0001", 0, 809b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "5 May 1997", 0, 0, 0, 0, "5 May 1997", "5 May", 0, "0005", 0, 810b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "16 May", 0, 0, 0, 0, 0, "16 May", 0, "0016", 0, 811b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "April 30", 0, 0, 0, 0, 0, 0, "April 30", 0, 0, 812b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "1998", 0, 0, 0, 0, 0, 0, 0, "1998", 0, 813b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "1", 0, 0, 0, 0, 0, 0, 0, "0001", 0, 814b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "3:00 pm Jan 1, 1997", 0, 0, 0, 0, 0, 0, 0, "0003", "3:00 PM January 1, 1997", 815b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru}; 816b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 817b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru// ------------------------------------- 818b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 819b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru/** 820b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * Verify the correct behavior when parsing an array of inputs against an 821b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * array of patterns, with known results. The results are encoded after 822b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * the input strings in each row. 823b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru */ 824b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queruvoid 825b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste QueruDateFormatTest::TestBadInput135a() 826b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru{ 827b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru UErrorCode status = U_ZERO_ERROR; 828b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru SimpleDateFormat* dateParse = new SimpleDateFormat(status); 829b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru if(U_FAILURE(status)) { 830b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru errln("Failed creating SimpleDateFormat with %s. Quitting test", u_errorName(status)); 831b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru delete dateParse; 832b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru return; 833b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru } 834b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru const char* s; 835b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru UDate date; 836b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru const uint32_t PF_LENGTH = (int32_t)(sizeof(parseFormats)/sizeof(parseFormats[0])); 837b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru const uint32_t INPUT_LENGTH = (int32_t)(sizeof(inputStrings)/sizeof(inputStrings[0])); 838b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 839b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru dateParse->applyPattern("d MMMM, yyyy"); 840b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru dateParse->adoptTimeZone(TimeZone::createDefault()); 841b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru s = "not parseable"; 842b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru UnicodeString thePat; 843b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru logln(UnicodeString("Trying to parse \"") + s + "\" with " + dateParse->toPattern(thePat)); 844b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru //try { 845b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru date = dateParse->parse(s, status); 846b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru if (U_SUCCESS(status)) 847b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru errln((UnicodeString)"FAIL: Expected exception during parse"); 848b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru //} 849b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru //catch(Exception ex) { 850b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru else 851b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru logln((UnicodeString)"Exception during parse: " + (int32_t)status); 852b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru status = U_ZERO_ERROR; 853b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru //} 854b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru for (uint32_t i = 0; i < INPUT_LENGTH; i += (PF_LENGTH + 1)) { 855b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru ParsePosition parsePosition(0); 856b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru UnicodeString s( inputStrings[i]); 857b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru for (uint32_t index = 0; index < PF_LENGTH;++index) { 858b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru const char* expected = inputStrings[i + 1 + index]; 859b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru dateParse->applyPattern(parseFormats[index]); 860b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru dateParse->adoptTimeZone(TimeZone::createDefault()); 861b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru //try { 862b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru parsePosition.setIndex(0); 863b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru date = dateParse->parse(s, parsePosition); 864b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru if (parsePosition.getIndex() != 0) { 865b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru UnicodeString s1, s2; 866b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru s.extract(0, parsePosition.getIndex(), s1); 867b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru s.extract(parsePosition.getIndex(), s.length(), s2); 868b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru if (date == 0) { 869b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru errln((UnicodeString)"ERROR: null result fmt=\"" + 870b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru parseFormats[index] + 871b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "\" pos=" + parsePosition.getIndex() + " " + 872b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru s1 + "|" + s2); 873b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru } 874b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru else { 875b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru UnicodeString result; 876b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru ((DateFormat*)dateParse)->format(date, result); 877b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru logln((UnicodeString)"Parsed \"" + s + "\" using \"" + dateParse->toPattern(thePat) + "\" to: " + result); 878b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru if (expected == 0) 879b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru errln((UnicodeString)"FAIL: Expected parse failure"); 880b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru else if (!(result == expected)) 881b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru errln(UnicodeString("FAIL: Expected ") + expected); 882b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru } 883b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru } 884b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru else if (expected != 0) { 885b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru errln(UnicodeString("FAIL: Expected ") + expected + " from \"" + 886b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru s + "\" with \"" + dateParse->toPattern(thePat) + "\""); 887b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru } 888b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru //} 889b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru //catch(Exception ex) { 890b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru if (U_FAILURE(status)) 891b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru errln((UnicodeString)"An exception was thrown during parse: " + (int32_t)status); 892b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru //} 893b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru } 894b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru } 895b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru delete dateParse; 896b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru if (U_FAILURE(status)) 897b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru errln((UnicodeString)"FAIL: UErrorCode received during test: " + (int32_t)status); 898b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru} 899b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 900b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru// ------------------------------------- 901b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 902b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru/** 903b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * Test the parsing of two-digit years. 904b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru */ 905b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queruvoid 906b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste QueruDateFormatTest::TestTwoDigitYear() 907b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru{ 908b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru UErrorCode ec = U_ZERO_ERROR; 909b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru SimpleDateFormat fmt("dd/MM/yy", Locale::getUK(), ec); 910b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru if (U_FAILURE(ec)) { 911b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru errln("FAIL: SimpleDateFormat constructor"); 912b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru return; 913b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru } 914b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru parse2DigitYear(fmt, "5/6/17", date(117, UCAL_JUNE, 5)); 915b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru parse2DigitYear(fmt, "4/6/34", date(34, UCAL_JUNE, 4)); 916b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru} 917b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 918b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru// ------------------------------------- 919b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 920b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queruvoid 921b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste QueruDateFormatTest::parse2DigitYear(DateFormat& fmt, const char* str, UDate expected) 922b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru{ 923b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru UErrorCode status = U_ZERO_ERROR; 924b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru //try { 925b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru UDate d = fmt.parse(str, status); 926b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru UnicodeString thePat; 927b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru logln(UnicodeString("Parsing \"") + str + "\" with " + ((SimpleDateFormat*)&fmt)->toPattern(thePat) + 928b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru " => " + dateToString(d)); 929b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru if (d != expected) errln((UnicodeString)"FAIL: Expected " + expected); 930b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru //} 931b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru //catch(ParseException e) { 932b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru if (U_FAILURE(status)) 933b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru errln((UnicodeString)"FAIL: Got exception"); 934b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru //} 935b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru} 936b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 937b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru// ------------------------------------- 938b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 939b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru/** 940b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * Test the formatting of time zones. 941b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru */ 942b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queruvoid 943b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste QueruDateFormatTest::TestDateFormatZone061() 944b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru{ 945b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru UErrorCode status = U_ZERO_ERROR; 946b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru UDate date; 947b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru DateFormat *formatter; 948b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru date= 859248000000.0; 949b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru logln((UnicodeString)"Date 1997/3/25 00:00 GMT: " + date); 950b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru formatter = new SimpleDateFormat((UnicodeString)"dd-MMM-yyyyy HH:mm", Locale::getUK(), status); 951b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru if(U_FAILURE(status)) { 952b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru errln("Failed creating SimpleDateFormat with %s. Quitting test", u_errorName(status)); 953b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru delete formatter; 954b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru return; 955b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru } 956b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru formatter->adoptTimeZone(TimeZone::createTimeZone("GMT")); 957b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru UnicodeString temp; formatter->format(date, temp); 958b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru logln((UnicodeString)"Formatted in GMT to: " + temp); 959b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru //try { 960b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru UDate tempDate = formatter->parse(temp, status); 961b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru logln((UnicodeString)"Parsed to: " + dateToString(tempDate)); 962b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru if (tempDate != date) errln((UnicodeString)"FAIL: Expected " + dateToString(date)); 963b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru //} 964b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru //catch(Throwable t) { 965b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru if (U_FAILURE(status)) 966b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru errln((UnicodeString)"Date Formatter throws: " + (int32_t)status); 967b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru //} 968b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru delete formatter; 969b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru} 970b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 971b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru// ------------------------------------- 972b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 973b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru/** 974b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * Test the formatting of time zones. 975b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru */ 976b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queruvoid 977b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste QueruDateFormatTest::TestDateFormatZone146() 978b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru{ 979b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru TimeZone *saveDefault = TimeZone::createDefault(); 980b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 981b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru //try { 982b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru TimeZone *thedefault = TimeZone::createTimeZone("GMT"); 983b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru TimeZone::setDefault(*thedefault); 984b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru // java.util.Locale.setDefault(new java.util.Locale("ar", "", "")); 985b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 986b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru // check to be sure... its GMT all right 987b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru TimeZone *testdefault = TimeZone::createDefault(); 988b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru UnicodeString testtimezone; 989b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru testdefault->getID(testtimezone); 990b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru if (testtimezone == "GMT") 991b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru logln("Test timezone = " + testtimezone); 992b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru else 993b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru errln("Test timezone should be GMT, not " + testtimezone); 994b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 995b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru UErrorCode status = U_ZERO_ERROR; 996b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru // now try to use the default GMT time zone 997b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru GregorianCalendar *greenwichcalendar = 998b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru new GregorianCalendar(1997, 3, 4, 23, 0, status); 999b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru failure(status, "new GregorianCalendar"); 1000b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru //*****************************greenwichcalendar.setTimeZone(TimeZone.getDefault()); 1001b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru //greenwichcalendar.set(1997, 3, 4, 23, 0); 1002b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru // try anything to set hour to 23:00 !!! 1003b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru greenwichcalendar->set(UCAL_HOUR_OF_DAY, 23); 1004b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru // get time 1005b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru UDate greenwichdate = greenwichcalendar->getTime(status); 1006b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru // format every way 1007b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru UnicodeString DATA [] = { 1008b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru UnicodeString("simple format: "), UnicodeString("04/04/97 23:00 GMT+00:00"), 1009b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru UnicodeString("MM/dd/yy HH:mm z"), 1010b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru UnicodeString("full format: "), UnicodeString("Friday, April 4, 1997 11:00:00 o'clock PM GMT+00:00"), 1011b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru UnicodeString("EEEE, MMMM d, yyyy h:mm:ss 'o''clock' a z"), 1012b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru UnicodeString("long format: "), UnicodeString("April 4, 1997 11:00:00 PM GMT+00:00"), 1013b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru UnicodeString("MMMM d, yyyy h:mm:ss a z"), 1014b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru UnicodeString("default format: "), UnicodeString("04-Apr-97 11:00:00 PM"), 1015b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru UnicodeString("dd-MMM-yy h:mm:ss a"), 1016b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru UnicodeString("short format: "), UnicodeString("4/4/97 11:00 PM"), 1017b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru UnicodeString("M/d/yy h:mm a") 1018b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru }; 1019b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru int32_t DATA_length = (int32_t)(sizeof(DATA) / sizeof(DATA[0])); 1020b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 1021b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru for (int32_t i=0; i<DATA_length; i+=3) { 1022b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru DateFormat *fmt = new SimpleDateFormat(DATA[i+2], Locale::getEnglish(), status); 1023b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru if(failure(status, "new SimpleDateFormat")) break; 1024b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru fmt->setCalendar(*greenwichcalendar); 1025b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru UnicodeString result; 1026b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru result = fmt->format(greenwichdate, result); 1027b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru logln(DATA[i] + result); 1028b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru if (result != DATA[i+1]) 1029b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru errln("FAIL: Expected " + DATA[i+1] + ", got " + result); 1030b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru delete fmt; 1031b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru } 1032b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru //} 1033b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru //finally { 1034b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru TimeZone::adoptDefault(saveDefault); 1035b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru //} 1036b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru delete testdefault; 1037b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru delete greenwichcalendar; 1038b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru delete thedefault; 1039b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 1040b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 1041b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru} 1042b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 1043b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru// ------------------------------------- 1044b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 1045b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru/** 1046b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * Test the formatting of dates in different locales. 1047b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru */ 1048b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queruvoid 1049b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste QueruDateFormatTest::TestLocaleDateFormat() // Bug 495 1050b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru{ 1051b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru UDate testDate = date(97, UCAL_SEPTEMBER, 15); 1052b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru DateFormat *dfFrench = DateFormat::createDateTimeInstance(DateFormat::FULL, 1053b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru DateFormat::FULL, Locale::getFrench()); 1054b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru DateFormat *dfUS = DateFormat::createDateTimeInstance(DateFormat::FULL, 1055b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru DateFormat::FULL, Locale::getUS()); 1056b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru UnicodeString expectedFRENCH ( "lundi 15 septembre 1997 00:00:00 \\u00C9tats-Unis (Los Angeles)" ); 1057b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru expectedFRENCH = expectedFRENCH.unescape(); 1058b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru //UnicodeString expectedUS ( "Monday, September 15, 1997 12:00:00 o'clock AM PDT" ); 1059b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru UnicodeString expectedUS ( "Monday, September 15, 1997 12:00:00 AM PT" ); 1060b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru logln((UnicodeString)"Date set to : " + dateToString(testDate)); 1061b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru UnicodeString out; 1062b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru if (dfUS == NULL || dfFrench == NULL){ 1063b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru dataerrln("Error calling DateFormat::createDateTimeInstance)"); 1064b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru delete dfUS; 1065b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru delete dfFrench; 1066b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru return; 1067b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru } 1068b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 1069b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru dfFrench->format(testDate, out); 1070b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru logln((UnicodeString)"Date Formated with French Locale " + out); 1071b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru if (!(out == expectedFRENCH)) 1072b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru errln((UnicodeString)"FAIL: Expected " + expectedFRENCH); 1073b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru out.truncate(0); 1074b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru dfUS->format(testDate, out); 1075b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru logln((UnicodeString)"Date Formated with US Locale " + out); 1076b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru if (!(out == expectedUS)) 1077b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru errln((UnicodeString)"FAIL: Expected " + expectedUS); 1078b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru delete dfUS; 1079b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru delete dfFrench; 1080b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru} 1081b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 1082b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru/** 1083b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * Test DateFormat(Calendar) API 1084b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru */ 1085b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queruvoid DateFormatTest::TestDateFormatCalendar() { 1086b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru DateFormat *date=0, *time=0, *full=0; 1087b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru Calendar *cal=0; 1088b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru UnicodeString str; 1089b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru ParsePosition pos; 1090b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru UDate when; 1091b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru UErrorCode ec = U_ZERO_ERROR; 1092b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 1093b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru /* Create a formatter for date fields. */ 1094b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru date = DateFormat::createDateInstance(DateFormat::kShort, Locale::getUS()); 1095b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru if (date == NULL) { 1096b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru errln("FAIL: createDateInstance failed"); 1097b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru goto FAIL; 1098b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru } 1099b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 1100b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru /* Create a formatter for time fields. */ 1101b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru time = DateFormat::createTimeInstance(DateFormat::kShort, Locale::getUS()); 1102b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru if (time == NULL) { 1103b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru errln("FAIL: createTimeInstance failed"); 1104b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru goto FAIL; 1105b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru } 1106b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 1107b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru /* Create a full format for output */ 1108b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru full = DateFormat::createDateTimeInstance(DateFormat::kFull, DateFormat::kFull, 1109b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru Locale::getUS()); 1110b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru if (full == NULL) { 1111b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru errln("FAIL: createInstance failed"); 1112b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru goto FAIL; 1113b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru } 1114b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 1115b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru /* Create a calendar */ 1116b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru cal = Calendar::createInstance(Locale::getUS(), ec); 1117b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru if (cal == NULL || U_FAILURE(ec)) { 1118b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru errln((UnicodeString)"FAIL: Calendar::createInstance failed with " + 1119b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru u_errorName(ec)); 1120b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru goto FAIL; 1121b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru } 1122b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 1123b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru /* Parse the date */ 1124b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru cal->clear(); 1125b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru str = UnicodeString("4/5/2001", ""); 1126b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru pos.setIndex(0); 1127b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru date->parse(str, *cal, pos); 1128b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru if (pos.getIndex() != str.length()) { 1129b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru errln((UnicodeString)"FAIL: DateFormat::parse(4/5/2001) failed at " + 1130b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru pos.getIndex()); 1131b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru goto FAIL; 1132b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru } 1133b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 1134b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru /* Parse the time */ 1135b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru str = UnicodeString("5:45 PM", ""); 1136b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru pos.setIndex(0); 1137b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru time->parse(str, *cal, pos); 1138b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru if (pos.getIndex() != str.length()) { 1139b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru errln((UnicodeString)"FAIL: DateFormat::parse(17:45) failed at " + 1140b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru pos.getIndex()); 1141b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru goto FAIL; 1142b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru } 1143b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 1144b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru /* Check result */ 1145b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru when = cal->getTime(ec); 1146b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru if (U_FAILURE(ec)) { 1147b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru errln((UnicodeString)"FAIL: cal->getTime() failed with " + u_errorName(ec)); 1148b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru goto FAIL; 1149b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru } 1150b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru str.truncate(0); 1151b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru full->format(when, str); 1152b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru // Thursday, April 5, 2001 5:45:00 PM PDT 986517900000 1153b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru if (when == 986517900000.0) { 1154b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru logln("Ok: Parsed result: " + str); 1155b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru } else { 1156b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru errln("FAIL: Parsed result: " + str + ", exp 4/5/2001 5:45 PM"); 1157b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru } 1158b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 1159b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru FAIL: 1160b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru delete date; 1161b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru delete time; 1162b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru delete full; 1163b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru delete cal; 1164b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru} 1165b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 1166b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru/** 1167b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * Test DateFormat's parsing of space characters. See jitterbug 1916. 1168b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru */ 1169b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queruvoid DateFormatTest::TestSpaceParsing() { 1170b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru const char* DATA[] = { 1171b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "yyyy MM dd HH:mm:ss", 1172b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 1173b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru // pattern, input, expected parse or NULL if expect parse failure 1174b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "MMMM d yy", " 04 05 06", NULL, // MMMM wants Apr/April 1175b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru NULL, "04 05 06", NULL, 1176b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "MM d yy", " 04 05 06", "2006 04 05 00:00:00", 1177b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru NULL, "04 05 06", "2006 04 05 00:00:00", 1178b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "MMMM d yy", " Apr 05 06", "2006 04 05 00:00:00", 1179b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru NULL, "Apr 05 06", "2006 04 05 00:00:00", 1180b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru }; 1181b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru const int32_t DATA_len = sizeof(DATA)/sizeof(DATA[0]); 1182b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 1183b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru expectParse(DATA, DATA_len, Locale("en")); 1184b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru} 1185b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 1186b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru/** 1187b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * Test handling of "HHmmss" pattern. 1188b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru */ 1189b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queruvoid DateFormatTest::TestExactCountFormat() { 1190b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru const char* DATA[] = { 1191b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "yyyy MM dd HH:mm:ss", 1192b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 1193b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru // pattern, input, expected parse or NULL if expect parse failure 1194b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "HHmmss", "123456", "1970 01 01 12:34:56", 1195b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru NULL, "12345", "1970 01 01 01:23:45", 1196b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru NULL, "1234", NULL, 1197b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru NULL, "00-05", NULL, 1198b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru NULL, "12-34", NULL, 1199b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru NULL, "00+05", NULL, 1200b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "ahhmm", "PM730", "1970 01 01 19:30:00", 1201b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru }; 1202b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru const int32_t DATA_len = sizeof(DATA)/sizeof(DATA[0]); 1203b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 1204b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru expectParse(DATA, DATA_len, Locale("en")); 1205b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru} 1206b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 1207b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru/** 1208b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * Test handling of white space. 1209b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru */ 1210b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queruvoid DateFormatTest::TestWhiteSpaceParsing() { 1211b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru const char* DATA[] = { 1212b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "yyyy MM dd", 1213b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 1214b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru // pattern, input, expected parse or null if expect parse failure 1215b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 1216b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru // Pattern space run should parse input text space run 1217b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "MM d yy", " 04 01 03", "2003 04 01", 1218b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru NULL, " 04 01 03 ", "2003 04 01", 1219b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru }; 1220b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru const int32_t DATA_len = sizeof(DATA)/sizeof(DATA[0]); 1221b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 1222b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru expectParse(DATA, DATA_len, Locale("en")); 1223b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru} 1224b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 1225b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 1226b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queruvoid DateFormatTest::TestInvalidPattern() { 1227b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru UErrorCode ec = U_ZERO_ERROR; 1228b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru SimpleDateFormat f(UnicodeString("Yesterday"), ec); 1229b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru ASSERT_OK(ec); 1230b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru UnicodeString out; 1231b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru FieldPosition pos; 1232b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru f.format((UDate)0, out, pos); 1233b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru logln(out); 1234b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru // The bug is that the call to format() will crash. By not 1235b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru // crashing, the test passes. 1236b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru} 1237b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 1238b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queruvoid DateFormatTest::TestGreekMay() { 1239b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru UErrorCode ec = U_ZERO_ERROR; 1240b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru UDate date = -9896080848000.0; 1241b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru SimpleDateFormat fmt("EEEE, dd MMMM yyyy h:mm:ss a", Locale("el", "", ""), ec); 1242b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru if (!assertSuccess("SimpleDateFormat::ct", ec)) return; 1243b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru UnicodeString str; 1244b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru fmt.format(date, str); 1245b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru ParsePosition pos(0); 1246b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru UDate d2 = fmt.parse(str, pos); 1247b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru if (date != d2) { 1248b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru errln("FAIL: unable to parse strings where case-folding changes length"); 1249b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru } 1250b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru} 1251b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 1252b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queruvoid DateFormatTest::TestStandAloneMonths() 1253b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru{ 1254b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru const char *EN_DATA[] = { 1255b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "yyyy MM dd HH:mm:ss", 1256b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 1257b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "yyyy LLLL dd H:mm:ss", "fp", "2004 03 10 16:36:31", "2004 March 10 16:36:31", "2004 03 10 16:36:31", 1258b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "yyyy LLL dd H:mm:ss", "fp", "2004 03 10 16:36:31", "2004 Mar 10 16:36:31", "2004 03 10 16:36:31", 1259b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "yyyy LLLL dd H:mm:ss", "F", "2004 03 10 16:36:31", "2004 March 10 16:36:31", 1260b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "yyyy LLL dd H:mm:ss", "pf", "2004 Mar 10 16:36:31", "2004 03 10 16:36:31", "2004 Mar 10 16:36:31", 1261b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 1262b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "LLLL", "fp", "1970 01 01 0:00:00", "January", "1970 01 01 0:00:00", 1263b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "LLLL", "fp", "1970 02 01 0:00:00", "February", "1970 02 01 0:00:00", 1264b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "LLLL", "fp", "1970 03 01 0:00:00", "March", "1970 03 01 0:00:00", 1265b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "LLLL", "fp", "1970 04 01 0:00:00", "April", "1970 04 01 0:00:00", 1266b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "LLLL", "fp", "1970 05 01 0:00:00", "May", "1970 05 01 0:00:00", 1267b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "LLLL", "fp", "1970 06 01 0:00:00", "June", "1970 06 01 0:00:00", 1268b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "LLLL", "fp", "1970 07 01 0:00:00", "July", "1970 07 01 0:00:00", 1269b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "LLLL", "fp", "1970 08 01 0:00:00", "August", "1970 08 01 0:00:00", 1270b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "LLLL", "fp", "1970 09 01 0:00:00", "September", "1970 09 01 0:00:00", 1271b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "LLLL", "fp", "1970 10 01 0:00:00", "October", "1970 10 01 0:00:00", 1272b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "LLLL", "fp", "1970 11 01 0:00:00", "November", "1970 11 01 0:00:00", 1273b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "LLLL", "fp", "1970 12 01 0:00:00", "December", "1970 12 01 0:00:00", 1274b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 1275b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "LLL", "fp", "1970 01 01 0:00:00", "Jan", "1970 01 01 0:00:00", 1276b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "LLL", "fp", "1970 02 01 0:00:00", "Feb", "1970 02 01 0:00:00", 1277b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "LLL", "fp", "1970 03 01 0:00:00", "Mar", "1970 03 01 0:00:00", 1278b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "LLL", "fp", "1970 04 01 0:00:00", "Apr", "1970 04 01 0:00:00", 1279b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "LLL", "fp", "1970 05 01 0:00:00", "May", "1970 05 01 0:00:00", 1280b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "LLL", "fp", "1970 06 01 0:00:00", "Jun", "1970 06 01 0:00:00", 1281b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "LLL", "fp", "1970 07 01 0:00:00", "Jul", "1970 07 01 0:00:00", 1282b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "LLL", "fp", "1970 08 01 0:00:00", "Aug", "1970 08 01 0:00:00", 1283b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "LLL", "fp", "1970 09 01 0:00:00", "Sep", "1970 09 01 0:00:00", 1284b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "LLL", "fp", "1970 10 01 0:00:00", "Oct", "1970 10 01 0:00:00", 1285b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "LLL", "fp", "1970 11 01 0:00:00", "Nov", "1970 11 01 0:00:00", 1286b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "LLL", "fp", "1970 12 01 0:00:00", "Dec", "1970 12 01 0:00:00", 1287b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru }; 1288b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 1289b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru const char *CS_DATA[] = { 1290b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "yyyy MM dd HH:mm:ss", 1291b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 1292b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "yyyy LLLL dd H:mm:ss", "fp", "2004 04 10 16:36:31", "2004 duben 10 16:36:31", "2004 04 10 16:36:31", 1293b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "yyyy MMMM dd H:mm:ss", "fp", "2004 04 10 16:36:31", "2004 dubna 10 16:36:31", "2004 04 10 16:36:31", 1294b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "yyyy LLL dd H:mm:ss", "fp", "2004 04 10 16:36:31", "2004 4. 10 16:36:31", "2004 04 10 16:36:31", 1295b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "yyyy LLLL dd H:mm:ss", "F", "2004 04 10 16:36:31", "2004 duben 10 16:36:31", 1296b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "yyyy MMMM dd H:mm:ss", "F", "2004 04 10 16:36:31", "2004 dubna 10 16:36:31", 1297b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "yyyy LLLL dd H:mm:ss", "pf", "2004 duben 10 16:36:31", "2004 04 10 16:36:31", "2004 duben 10 16:36:31", 1298b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "yyyy MMMM dd H:mm:ss", "pf", "2004 dubna 10 16:36:31", "2004 04 10 16:36:31", "2004 dubna 10 16:36:31", 1299b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 1300b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "LLLL", "fp", "1970 01 01 0:00:00", "leden", "1970 01 01 0:00:00", 1301b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "LLLL", "fp", "1970 02 01 0:00:00", "\\u00FAnor", "1970 02 01 0:00:00", 1302b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "LLLL", "fp", "1970 03 01 0:00:00", "b\\u0159ezen", "1970 03 01 0:00:00", 1303b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "LLLL", "fp", "1970 04 01 0:00:00", "duben", "1970 04 01 0:00:00", 1304b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "LLLL", "fp", "1970 05 01 0:00:00", "kv\\u011Bten", "1970 05 01 0:00:00", 1305b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "LLLL", "fp", "1970 06 01 0:00:00", "\\u010Derven", "1970 06 01 0:00:00", 1306b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "LLLL", "fp", "1970 07 01 0:00:00", "\\u010Dervenec", "1970 07 01 0:00:00", 1307b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "LLLL", "fp", "1970 08 01 0:00:00", "srpen", "1970 08 01 0:00:00", 1308b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "LLLL", "fp", "1970 09 01 0:00:00", "z\\u00E1\\u0159\\u00ED", "1970 09 01 0:00:00", 1309b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "LLLL", "fp", "1970 10 01 0:00:00", "\\u0159\\u00EDjen", "1970 10 01 0:00:00", 1310b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "LLLL", "fp", "1970 11 01 0:00:00", "listopad", "1970 11 01 0:00:00", 1311b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "LLLL", "fp", "1970 12 01 0:00:00", "prosinec", "1970 12 01 0:00:00", 1312b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 1313b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "LLL", "fp", "1970 01 01 0:00:00", "1.", "1970 01 01 0:00:00", 1314b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "LLL", "fp", "1970 02 01 0:00:00", "2.", "1970 02 01 0:00:00", 1315b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "LLL", "fp", "1970 03 01 0:00:00", "3.", "1970 03 01 0:00:00", 1316b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "LLL", "fp", "1970 04 01 0:00:00", "4.", "1970 04 01 0:00:00", 1317b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "LLL", "fp", "1970 05 01 0:00:00", "5.", "1970 05 01 0:00:00", 1318b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "LLL", "fp", "1970 06 01 0:00:00", "6.", "1970 06 01 0:00:00", 1319b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "LLL", "fp", "1970 07 01 0:00:00", "7.", "1970 07 01 0:00:00", 1320b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "LLL", "fp", "1970 08 01 0:00:00", "8.", "1970 08 01 0:00:00", 1321b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "LLL", "fp", "1970 09 01 0:00:00", "9.", "1970 09 01 0:00:00", 1322b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "LLL", "fp", "1970 10 01 0:00:00", "10.", "1970 10 01 0:00:00", 1323b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "LLL", "fp", "1970 11 01 0:00:00", "11.", "1970 11 01 0:00:00", 1324b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "LLL", "fp", "1970 12 01 0:00:00", "12.", "1970 12 01 0:00:00", 1325b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru }; 1326b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 1327b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru expect(EN_DATA, ARRAY_SIZE(EN_DATA), Locale("en", "", "")); 1328b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru expect(CS_DATA, ARRAY_SIZE(CS_DATA), Locale("cs", "", "")); 1329b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru} 1330b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 1331b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queruvoid DateFormatTest::TestStandAloneDays() 1332b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru{ 1333b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru const char *EN_DATA[] = { 1334b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "yyyy MM dd HH:mm:ss", 1335b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 1336b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "cccc", "fp", "1970 01 04 0:00:00", "Sunday", "1970 01 04 0:00:00", 1337b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "cccc", "fp", "1970 01 05 0:00:00", "Monday", "1970 01 05 0:00:00", 1338b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "cccc", "fp", "1970 01 06 0:00:00", "Tuesday", "1970 01 06 0:00:00", 1339b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "cccc", "fp", "1970 01 07 0:00:00", "Wednesday", "1970 01 07 0:00:00", 1340b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "cccc", "fp", "1970 01 01 0:00:00", "Thursday", "1970 01 01 0:00:00", 1341b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "cccc", "fp", "1970 01 02 0:00:00", "Friday", "1970 01 02 0:00:00", 1342b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "cccc", "fp", "1970 01 03 0:00:00", "Saturday", "1970 01 03 0:00:00", 1343b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 1344b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "ccc", "fp", "1970 01 04 0:00:00", "Sun", "1970 01 04 0:00:00", 1345b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "ccc", "fp", "1970 01 05 0:00:00", "Mon", "1970 01 05 0:00:00", 1346b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "ccc", "fp", "1970 01 06 0:00:00", "Tue", "1970 01 06 0:00:00", 1347b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "ccc", "fp", "1970 01 07 0:00:00", "Wed", "1970 01 07 0:00:00", 1348b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "ccc", "fp", "1970 01 01 0:00:00", "Thu", "1970 01 01 0:00:00", 1349b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "ccc", "fp", "1970 01 02 0:00:00", "Fri", "1970 01 02 0:00:00", 1350b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "ccc", "fp", "1970 01 03 0:00:00", "Sat", "1970 01 03 0:00:00", 1351b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru }; 1352b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 1353b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru const char *CS_DATA[] = { 1354b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "yyyy MM dd HH:mm:ss", 1355b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 1356b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "cccc", "fp", "1970 01 04 0:00:00", "ned\\u011Ble", "1970 01 04 0:00:00", 1357b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "cccc", "fp", "1970 01 05 0:00:00", "pond\\u011Bl\\u00ED", "1970 01 05 0:00:00", 1358b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "cccc", "fp", "1970 01 06 0:00:00", "\\u00FAter\\u00FD", "1970 01 06 0:00:00", 1359b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "cccc", "fp", "1970 01 07 0:00:00", "st\\u0159eda", "1970 01 07 0:00:00", 1360b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "cccc", "fp", "1970 01 01 0:00:00", "\\u010Dtvrtek", "1970 01 01 0:00:00", 1361b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "cccc", "fp", "1970 01 02 0:00:00", "p\\u00E1tek", "1970 01 02 0:00:00", 1362b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "cccc", "fp", "1970 01 03 0:00:00", "sobota", "1970 01 03 0:00:00", 1363b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 1364b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "ccc", "fp", "1970 01 04 0:00:00", "ne", "1970 01 04 0:00:00", 1365b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "ccc", "fp", "1970 01 05 0:00:00", "po", "1970 01 05 0:00:00", 1366b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "ccc", "fp", "1970 01 06 0:00:00", "\\u00FAt", "1970 01 06 0:00:00", 1367b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "ccc", "fp", "1970 01 07 0:00:00", "st", "1970 01 07 0:00:00", 1368b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "ccc", "fp", "1970 01 01 0:00:00", "\\u010Dt", "1970 01 01 0:00:00", 1369b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "ccc", "fp", "1970 01 02 0:00:00", "p\\u00E1", "1970 01 02 0:00:00", 1370b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "ccc", "fp", "1970 01 03 0:00:00", "so", "1970 01 03 0:00:00", 1371b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru }; 1372b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 1373b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru expect(EN_DATA, ARRAY_SIZE(EN_DATA), Locale("en", "", "")); 1374b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru expect(CS_DATA, ARRAY_SIZE(CS_DATA), Locale("cs", "", "")); 1375b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru} 1376b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 1377b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queruvoid DateFormatTest::TestNarrowNames() 1378b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru{ 1379b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru const char *EN_DATA[] = { 1380b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "yyyy MM dd HH:mm:ss", 1381b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 1382b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "yyyy MMMMM dd H:mm:ss", "2004 03 10 16:36:31", "2004 M 10 16:36:31", 1383b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "yyyy LLLLL dd H:mm:ss", "2004 03 10 16:36:31", "2004 M 10 16:36:31", 1384b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 1385b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "MMMMM", "1970 01 01 0:00:00", "J", 1386b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "MMMMM", "1970 02 01 0:00:00", "F", 1387b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "MMMMM", "1970 03 01 0:00:00", "M", 1388b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "MMMMM", "1970 04 01 0:00:00", "A", 1389b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "MMMMM", "1970 05 01 0:00:00", "M", 1390b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "MMMMM", "1970 06 01 0:00:00", "J", 1391b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "MMMMM", "1970 07 01 0:00:00", "J", 1392b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "MMMMM", "1970 08 01 0:00:00", "A", 1393b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "MMMMM", "1970 09 01 0:00:00", "S", 1394b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "MMMMM", "1970 10 01 0:00:00", "O", 1395b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "MMMMM", "1970 11 01 0:00:00", "N", 1396b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "MMMMM", "1970 12 01 0:00:00", "D", 1397b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 1398b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "LLLLL", "1970 01 01 0:00:00", "J", 1399b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "LLLLL", "1970 02 01 0:00:00", "F", 1400b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "LLLLL", "1970 03 01 0:00:00", "M", 1401b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "LLLLL", "1970 04 01 0:00:00", "A", 1402b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "LLLLL", "1970 05 01 0:00:00", "M", 1403b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "LLLLL", "1970 06 01 0:00:00", "J", 1404b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "LLLLL", "1970 07 01 0:00:00", "J", 1405b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "LLLLL", "1970 08 01 0:00:00", "A", 1406b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "LLLLL", "1970 09 01 0:00:00", "S", 1407b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "LLLLL", "1970 10 01 0:00:00", "O", 1408b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "LLLLL", "1970 11 01 0:00:00", "N", 1409b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "LLLLL", "1970 12 01 0:00:00", "D", 1410b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 1411b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "EEEEE", "1970 01 04 0:00:00", "S", 1412b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "EEEEE", "1970 01 05 0:00:00", "M", 1413b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "EEEEE", "1970 01 06 0:00:00", "T", 1414b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "EEEEE", "1970 01 07 0:00:00", "W", 1415b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "EEEEE", "1970 01 01 0:00:00", "T", 1416b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "EEEEE", "1970 01 02 0:00:00", "F", 1417b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "EEEEE", "1970 01 03 0:00:00", "S", 1418b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 1419b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "ccccc", "1970 01 04 0:00:00", "S", 1420b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "ccccc", "1970 01 05 0:00:00", "M", 1421b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "ccccc", "1970 01 06 0:00:00", "T", 1422b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "ccccc", "1970 01 07 0:00:00", "W", 1423b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "ccccc", "1970 01 01 0:00:00", "T", 1424b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "ccccc", "1970 01 02 0:00:00", "F", 1425b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "ccccc", "1970 01 03 0:00:00", "S", 1426b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru }; 1427b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 1428b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru const char *CS_DATA[] = { 1429b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "yyyy MM dd HH:mm:ss", 1430b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 1431b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "yyyy LLLLL dd H:mm:ss", "2004 04 10 16:36:31", "2004 d 10 16:36:31", 1432b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "yyyy MMMMM dd H:mm:ss", "2004 04 10 16:36:31", "2004 d 10 16:36:31", 1433b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 1434b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "MMMMM", "1970 01 01 0:00:00", "l", 1435b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "MMMMM", "1970 02 01 0:00:00", "\\u00FA", 1436b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "MMMMM", "1970 03 01 0:00:00", "b", 1437b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "MMMMM", "1970 04 01 0:00:00", "d", 1438b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "MMMMM", "1970 05 01 0:00:00", "k", 1439b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "MMMMM", "1970 06 01 0:00:00", "\\u010D", 1440b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "MMMMM", "1970 07 01 0:00:00", "\\u010D", 1441b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "MMMMM", "1970 08 01 0:00:00", "s", 1442b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "MMMMM", "1970 09 01 0:00:00", "z", 1443b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "MMMMM", "1970 10 01 0:00:00", "\\u0159", 1444b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "MMMMM", "1970 11 01 0:00:00", "l", 1445b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "MMMMM", "1970 12 01 0:00:00", "p", 1446b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 1447b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "LLLLL", "1970 01 01 0:00:00", "l", 1448b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "LLLLL", "1970 02 01 0:00:00", "\\u00FA", 1449b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "LLLLL", "1970 03 01 0:00:00", "b", 1450b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "LLLLL", "1970 04 01 0:00:00", "d", 1451b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "LLLLL", "1970 05 01 0:00:00", "k", 1452b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "LLLLL", "1970 06 01 0:00:00", "\\u010D", 1453b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "LLLLL", "1970 07 01 0:00:00", "\\u010D", 1454b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "LLLLL", "1970 08 01 0:00:00", "s", 1455b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "LLLLL", "1970 09 01 0:00:00", "z", 1456b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "LLLLL", "1970 10 01 0:00:00", "\\u0159", 1457b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "LLLLL", "1970 11 01 0:00:00", "l", 1458b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "LLLLL", "1970 12 01 0:00:00", "p", 1459b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 1460b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "EEEEE", "1970 01 04 0:00:00", "N", 1461b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "EEEEE", "1970 01 05 0:00:00", "P", 1462b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "EEEEE", "1970 01 06 0:00:00", "\\u00DA", 1463b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "EEEEE", "1970 01 07 0:00:00", "S", 1464b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "EEEEE", "1970 01 01 0:00:00", "\\u010C", 1465b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "EEEEE", "1970 01 02 0:00:00", "P", 1466b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "EEEEE", "1970 01 03 0:00:00", "S", 1467b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 1468b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "ccccc", "1970 01 04 0:00:00", "N", 1469b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "ccccc", "1970 01 05 0:00:00", "P", 1470b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "ccccc", "1970 01 06 0:00:00", "\\u00DA", 1471b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "ccccc", "1970 01 07 0:00:00", "S", 1472b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "ccccc", "1970 01 01 0:00:00", "\\u010C", 1473b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "ccccc", "1970 01 02 0:00:00", "P", 1474b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "ccccc", "1970 01 03 0:00:00", "S", 1475b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru }; 1476b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 1477b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru expectFormat(EN_DATA, ARRAY_SIZE(EN_DATA), Locale("en", "", "")); 1478b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru expectFormat(CS_DATA, ARRAY_SIZE(CS_DATA), Locale("cs", "", "")); 1479b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru} 1480b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 1481b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queruvoid DateFormatTest::TestEras() 1482b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru{ 1483b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru const char *EN_DATA[] = { 1484b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "yyyy MM dd", 1485b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 1486b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "MMMM dd yyyy G", "fp", "1951 07 17", "July 17 1951 AD", "1951 07 17", 1487b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "MMMM dd yyyy GG", "fp", "1951 07 17", "July 17 1951 AD", "1951 07 17", 1488b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "MMMM dd yyyy GGG", "fp", "1951 07 17", "July 17 1951 AD", "1951 07 17", 1489b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "MMMM dd yyyy GGGG", "fp", "1951 07 17", "July 17 1951 Anno Domini", "1951 07 17", 1490b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 1491b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "MMMM dd yyyy G", "fp", "-438 07 17", "July 17 0439 BC", "-438 07 17", 1492b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "MMMM dd yyyy GG", "fp", "-438 07 17", "July 17 0439 BC", "-438 07 17", 1493b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "MMMM dd yyyy GGG", "fp", "-438 07 17", "July 17 0439 BC", "-438 07 17", 1494b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "MMMM dd yyyy GGGG", "fp", "-438 07 17", "July 17 0439 Before Christ", "-438 07 17", 1495b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru }; 1496b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 1497b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru expect(EN_DATA, ARRAY_SIZE(EN_DATA), Locale("en", "", "")); 1498b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru} 1499b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 1500b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queruvoid DateFormatTest::TestQuarters() 1501b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru{ 1502b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru const char *EN_DATA[] = { 1503b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "yyyy MM dd", 1504b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 1505b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "Q", "fp", "1970 01 01", "1", "1970 01 01", 1506b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "QQ", "fp", "1970 04 01", "02", "1970 04 01", 1507b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "QQQ", "fp", "1970 07 01", "Q3", "1970 07 01", 1508b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "QQQQ", "fp", "1970 10 01", "4th quarter", "1970 10 01", 1509b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 1510b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "q", "fp", "1970 01 01", "1", "1970 01 01", 1511b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "qq", "fp", "1970 04 01", "02", "1970 04 01", 1512b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "qqq", "fp", "1970 07 01", "Q3", "1970 07 01", 1513b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "qqqq", "fp", "1970 10 01", "4th quarter", "1970 10 01", 1514b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru }; 1515b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 1516b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru expect(EN_DATA, ARRAY_SIZE(EN_DATA), Locale("en", "", "")); 1517b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru} 1518b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 1519b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru/** 1520b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * Test parsing. Input is an array that starts with the following 1521b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * header: 1522b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * 1523b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * [0] = pattern string to parse [i+2] with 1524b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * 1525b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * followed by test cases, each of which is 3 array elements: 1526b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * 1527b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * [i] = pattern, or NULL to reuse prior pattern 1528b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * [i+1] = input string 1529b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * [i+2] = expected parse result (parsed with pattern [0]) 1530b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * 1531b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * If expect parse failure, then [i+2] should be NULL. 1532b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru */ 1533b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queruvoid DateFormatTest::expectParse(const char** data, int32_t data_length, 1534b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru const Locale& loc) { 1535b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru const UDate FAIL = (UDate) -1; 1536b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru const UnicodeString FAIL_STR("parse failure"); 1537b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru int32_t i = 0; 1538b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 1539b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru UErrorCode ec = U_ZERO_ERROR; 1540b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru SimpleDateFormat fmt("", loc, ec); 1541b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru SimpleDateFormat ref(data[i++], loc, ec); 1542b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru SimpleDateFormat gotfmt("G yyyy MM dd HH:mm:ss z", loc, ec); 1543b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru if (U_FAILURE(ec)) { 1544b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru errln("FAIL: SimpleDateFormat constructor"); 1545b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru return; 1546b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru } 1547b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 1548b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru const char* currentPat = NULL; 1549b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru while (i<data_length) { 1550b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru const char* pattern = data[i++]; 1551b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru const char* input = data[i++]; 1552b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru const char* expected = data[i++]; 1553b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 1554b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru ec = U_ZERO_ERROR; 1555b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru if (pattern != NULL) { 1556b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru fmt.applyPattern(pattern); 1557b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru currentPat = pattern; 1558b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru } 1559b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru UDate got = fmt.parse(input, ec); 1560b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru UnicodeString gotstr(FAIL_STR); 1561b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru if (U_FAILURE(ec)) { 1562b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru got = FAIL; 1563b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru } else { 1564b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru gotstr.remove(); 1565b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru gotfmt.format(got, gotstr); 1566b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru } 1567b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 1568b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru UErrorCode ec2 = U_ZERO_ERROR; 1569b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru UDate exp = FAIL; 1570b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru UnicodeString expstr(FAIL_STR); 1571b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru if (expected != NULL) { 1572b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru expstr = expected; 1573b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru exp = ref.parse(expstr, ec2); 1574b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru if (U_FAILURE(ec2)) { 1575b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru // This only happens if expected is in wrong format -- 1576b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru // should never happen once test is debugged. 1577b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru errln("FAIL: Internal test error"); 1578b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru return; 1579b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru } 1580b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru } 1581b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 1582b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru if (got == exp) { 1583b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru logln((UnicodeString)"Ok: " + input + " x " + 1584b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru currentPat + " => " + gotstr); 1585b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru } else { 1586b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru errln((UnicodeString)"FAIL: " + input + " x " + 1587b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru currentPat + " => " + gotstr + ", expected " + 1588b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru expstr); 1589b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru } 1590b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru } 1591b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru} 1592b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 1593b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru/** 1594b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * Test formatting and parsing. Input is an array that starts 1595b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * with the following header: 1596b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * 1597b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * [0] = pattern string to parse [i+2] with 1598b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * 1599b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * followed by test cases, each of which is 3 array elements: 1600b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * 1601b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * [i] = pattern, or null to reuse prior pattern 1602b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * [i+1] = control string, either "fp", "pf", or "F". 1603b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * [i+2..] = data strings 1604b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * 1605b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * The number of data strings depends on the control string. 1606b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * Examples: 1607b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * 1. "y/M/d H:mm:ss.SS", "fp", "2004 03 10 16:36:31.567", "2004/3/10 16:36:31.56", "2004 03 10 16:36:31.560", 1608b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * 'f': Format date [i+2] (as parsed using pattern [0]) and expect string [i+3]. 1609b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * 'p': Parse string [i+3] and expect date [i+4]. 1610b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * 1611b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * 2. "y/M/d H:mm:ss.SSS", "F", "2004 03 10 16:36:31.567", "2004/3/10 16:36:31.567" 1612b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * 'F': Format date [i+2] and expect string [i+3], 1613b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * then parse string [i+3] and expect date [i+2]. 1614b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * 1615b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * 3. "y/M/d H:mm:ss.SSSS", "pf", "2004/3/10 16:36:31.5679", "2004 03 10 16:36:31.567", "2004/3/10 16:36:31.5670", 1616b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * 'p': Parse string [i+2] and expect date [i+3]. 1617b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * 'f': Format date [i+3] and expect string [i+4]. 1618b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru */ 1619b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queruvoid DateFormatTest::expect(const char** data, int32_t data_length, 1620b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru const Locale& loc) { 1621b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru int32_t i = 0; 1622b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru UErrorCode ec = U_ZERO_ERROR; 1623b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru UnicodeString str, str2; 1624b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru SimpleDateFormat fmt("", loc, ec); 1625b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru SimpleDateFormat ref(data[i++], loc, ec); 1626b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru SimpleDateFormat univ("EE G yyyy MM dd HH:mm:ss.SSS z", loc, ec); 1627b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru if (!assertSuccess("construct SimpleDateFormat", ec)) return; 1628b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 1629b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru UnicodeString currentPat; 1630b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru while (i<data_length) { 1631b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru const char* pattern = data[i++]; 1632b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru if (pattern != NULL) { 1633b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru fmt.applyPattern(pattern); 1634b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru currentPat = pattern; 1635b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru } 1636b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 1637b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru const char* control = data[i++]; 1638b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 1639b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru if (uprv_strcmp(control, "fp") == 0) { 1640b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru // 'f' 1641b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru const char* datestr = data[i++]; 1642b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru const char* string = data[i++]; 1643b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru UDate date = ref.parse(ctou(datestr), ec); 1644b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru if (!assertSuccess("parse", ec)) return; 1645b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru assertEquals((UnicodeString)"\"" + currentPat + "\".format(" + datestr + ")", 1646b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru ctou(string), 1647b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru fmt.format(date, str.remove())); 1648b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru // 'p' 1649b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru datestr = data[i++]; 1650b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru date = ref.parse(ctou(datestr), ec); 1651b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru if (!assertSuccess("parse", ec)) return; 1652b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru UDate parsedate = fmt.parse(ctou(string), ec); 1653b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru if (assertSuccess((UnicodeString)"\"" + currentPat + "\".parse(" + string + ")", ec)) { 1654b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru assertEquals((UnicodeString)"\"" + currentPat + "\".parse(" + string + ")", 1655b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru univ.format(date, str.remove()), 1656b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru univ.format(parsedate, str2.remove())); 1657b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru } 1658b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru } 1659b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 1660b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru else if (uprv_strcmp(control, "pf") == 0) { 1661b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru // 'p' 1662b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru const char* string = data[i++]; 1663b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru const char* datestr = data[i++]; 1664b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru UDate date = ref.parse(ctou(datestr), ec); 1665b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru if (!assertSuccess("parse", ec)) return; 1666b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru UDate parsedate = fmt.parse(ctou(string), ec); 1667b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru if (assertSuccess((UnicodeString)"\"" + currentPat + "\".parse(" + string + ")", ec)) { 1668b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru assertEquals((UnicodeString)"\"" + currentPat + "\".parse(" + string + ")", 1669b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru univ.format(date, str.remove()), 1670b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru univ.format(parsedate, str2.remove())); 1671b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru } 1672b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru // 'f' 1673b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru string = data[i++]; 1674b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru assertEquals((UnicodeString)"\"" + currentPat + "\".format(" + datestr + ")", 1675b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru ctou(string), 1676b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru fmt.format(date, str.remove())); 1677b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru } 1678b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 1679b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru else if (uprv_strcmp(control, "F") == 0) { 1680b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru const char* datestr = data[i++]; 1681b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru const char* string = data[i++]; 1682b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru UDate date = ref.parse(ctou(datestr), ec); 1683b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru if (!assertSuccess("parse", ec)) return; 1684b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru assertEquals((UnicodeString)"\"" + currentPat + "\".format(" + datestr + ")", 1685b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru ctou(string), 1686b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru fmt.format(date, str.remove())); 1687b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 1688b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru UDate parsedate = fmt.parse(string, ec); 1689b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru if (assertSuccess((UnicodeString)"\"" + currentPat + "\".parse(" + string + ")", ec)) { 1690b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru assertEquals((UnicodeString)"\"" + currentPat + "\".parse(" + string + ")", 1691b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru univ.format(date, str.remove()), 1692b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru univ.format(parsedate, str2.remove())); 1693b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru } 1694b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru } 1695b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 1696b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru else { 1697b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru errln((UnicodeString)"FAIL: Invalid control string " + control); 1698b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru return; 1699b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru } 1700b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru } 1701b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru} 1702b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 1703b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru/** 1704b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * Test formatting. Input is an array that starts 1705b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * with the following header: 1706b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * 1707b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * [0] = pattern string to parse [i+2] with 1708b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * 1709b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * followed by test cases, each of which is 3 array elements: 1710b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * 1711b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * [i] = pattern, or null to reuse prior pattern 1712b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * [i+1] = data string a 1713b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * [i+2] = data string b 1714b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * 1715b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * Examples: 1716b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * Format date [i+1] and expect string [i+2]. 1717b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * 1718b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * "y/M/d H:mm:ss.SSSS", "2004/3/10 16:36:31.5679", "2004 03 10 16:36:31.567" 1719b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru */ 1720b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queruvoid DateFormatTest::expectFormat(const char** data, int32_t data_length, 1721b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru const Locale& loc) { 1722b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru int32_t i = 0; 1723b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru UErrorCode ec = U_ZERO_ERROR; 1724b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru UnicodeString str, str2; 1725b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru SimpleDateFormat fmt("", loc, ec); 1726b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru SimpleDateFormat ref(data[i++], loc, ec); 1727b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru SimpleDateFormat univ("EE G yyyy MM dd HH:mm:ss.SSS z", loc, ec); 1728b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru if (!assertSuccess("construct SimpleDateFormat", ec)) return; 1729b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 1730b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru UnicodeString currentPat; 1731b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 1732b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru while (i<data_length) { 1733b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru const char* pattern = data[i++]; 1734b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru if (pattern != NULL) { 1735b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru fmt.applyPattern(pattern); 1736b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru currentPat = pattern; 1737b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru } 1738b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 1739b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru const char* datestr = data[i++]; 1740b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru const char* string = data[i++]; 1741b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru UDate date = ref.parse(ctou(datestr), ec); 1742b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru if (!assertSuccess("parse", ec)) return; 1743b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru assertEquals((UnicodeString)"\"" + currentPat + "\".format(" + datestr + ")", 1744b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru ctou(string), 1745b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru fmt.format(date, str.remove())); 1746b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru } 1747b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru} 1748b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 1749b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queruvoid DateFormatTest::TestGenericTime() { 1750b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru // any zone pattern should parse any zone 1751b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru const Locale en("en"); 1752b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru const char* ZDATA[] = { 1753b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "yyyy MM dd HH:mm zzz", 1754b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru // round trip 1755b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "y/M/d H:mm zzzz", "F", "2004 01 01 01:00 PST", "2004/1/1 1:00 Pacific Standard Time", 1756b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "y/M/d H:mm zzz", "F", "2004 01 01 01:00 PST", "2004/1/1 1:00 PST", 1757b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "y/M/d H:mm vvvv", "F", "2004 01 01 01:00 PST", "2004/1/1 1:00 Pacific Time", 1758b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "y/M/d H:mm v", "F", "2004 01 01 01:00 PST", "2004/1/1 1:00 PT", 1759b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru // non-generic timezone string influences dst offset even if wrong for date/time 1760b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "y/M/d H:mm zzz", "pf", "2004/1/1 1:00 PDT", "2004 01 01 01:00 PDT", "2004/1/1 0:00 PST", 1761b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "y/M/d H:mm vvvv", "pf", "2004/1/1 1:00 PDT", "2004 01 01 01:00 PDT", "2004/1/1 0:00 Pacific Time", 1762b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "y/M/d H:mm zzz", "pf", "2004/7/1 1:00 PST", "2004 07 01 02:00 PDT", "2004/7/1 2:00 PDT", 1763b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "y/M/d H:mm vvvv", "pf", "2004/7/1 1:00 PST", "2004 07 01 02:00 PDT", "2004/7/1 2:00 Pacific Time", 1764b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru // generic timezone generates dst offset appropriate for local time 1765b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "y/M/d H:mm zzz", "pf", "2004/1/1 1:00 PT", "2004 01 01 01:00 PST", "2004/1/1 1:00 PST", 1766b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "y/M/d H:mm vvvv", "pf", "2004/1/1 1:00 PT", "2004 01 01 01:00 PST", "2004/1/1 1:00 Pacific Time", 1767b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "y/M/d H:mm zzz", "pf", "2004/7/1 1:00 PT", "2004 07 01 01:00 PDT", "2004/7/1 1:00 PDT", 1768b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "y/M/d H:mm vvvv", "pf", "2004/7/1 1:00 PT", "2004 07 01 01:00 PDT", "2004/7/1 1:00 Pacific Time", 1769b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru // daylight savings time transition edge cases. 1770b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru // time to parse does not really exist, PT interpreted as earlier time 1771b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "y/M/d H:mm zzz", "pf", "2005/4/3 2:30 PT", "2005 04 03 03:30 PDT", "2005/4/3 3:30 PDT", 1772b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "y/M/d H:mm zzz", "pf", "2005/4/3 2:30 PST", "2005 04 03 03:30 PDT", "2005/4/3 3:30 PDT", 1773b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "y/M/d H:mm zzz", "pf", "2005/4/3 2:30 PDT", "2005 04 03 01:30 PST", "2005/4/3 1:30 PST", 1774b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "y/M/d H:mm v", "pf", "2005/4/3 2:30 PT", "2005 04 03 03:30 PDT", "2005/4/3 3:30 PT", 1775b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "y/M/d H:mm v", "pf", "2005/4/3 2:30 PST", "2005 04 03 03:30 PDT", "2005/4/3 3:30 PT", 1776b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "y/M/d H:mm v", "pf", "2005/4/3 2:30 PDT", "2005 04 03 01:30 PST", "2005/4/3 1:30 PT", 1777b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "y/M/d H:mm", "pf", "2005/4/3 2:30", "2005 04 03 03:30 PDT", "2005/4/3 3:30", 1778b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru // time to parse is ambiguous, PT interpreted as later time 1779b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "y/M/d H:mm zzz", "pf", "2005/10/30 1:30 PT", "2005 10 30 01:30 PST", "2005/10/30 1:30 PST", 1780b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "y/M/d H:mm v", "pf", "2005/10/30 1:30 PT", "2005 10 30 01:30 PST", "2005/10/30 1:30 PT", 1781b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "y/M/d H:mm", "pf", "2005/10/30 1:30 PT", "2005 10 30 01:30 PST", "2005/10/30 1:30", 1782b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 1783b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "y/M/d H:mm zzz", "pf", "2004/10/31 1:30 PT", "2004 10 31 01:30 PST", "2004/10/31 1:30 PST", 1784b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "y/M/d H:mm zzz", "pf", "2004/10/31 1:30 PST", "2004 10 31 01:30 PST", "2004/10/31 1:30 PST", 1785b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "y/M/d H:mm zzz", "pf", "2004/10/31 1:30 PDT", "2004 10 31 01:30 PDT", "2004/10/31 1:30 PDT", 1786b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "y/M/d H:mm v", "pf", "2004/10/31 1:30 PT", "2004 10 31 01:30 PST", "2004/10/31 1:30 PT", 1787b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "y/M/d H:mm v", "pf", "2004/10/31 1:30 PST", "2004 10 31 01:30 PST", "2004/10/31 1:30 PT", 1788b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "y/M/d H:mm v", "pf", "2004/10/31 1:30 PDT", "2004 10 31 01:30 PDT", "2004/10/31 1:30 PT", 1789b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "y/M/d H:mm", "pf", "2004/10/31 1:30", "2004 10 31 01:30 PST", "2004/10/31 1:30", 1790b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru }; 1791b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru const int32_t ZDATA_length = sizeof(ZDATA)/ sizeof(ZDATA[0]); 1792b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru expect(ZDATA, ZDATA_length, en); 1793b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 1794b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru UErrorCode status = U_ZERO_ERROR; 1795b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 1796b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru logln("cross format/parse tests"); 1797b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru UnicodeString basepat("yy/MM/dd H:mm "); 1798b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru SimpleDateFormat formats[] = { 1799b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru SimpleDateFormat(basepat + "vvv", en, status), 1800b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru SimpleDateFormat(basepat + "vvvv", en, status), 1801b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru SimpleDateFormat(basepat + "zzz", en, status), 1802b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru SimpleDateFormat(basepat + "zzzz", en, status) 1803b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru }; 1804b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru ASSERT_OK(status); 1805b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru const int32_t formats_length = sizeof(formats)/sizeof(formats[0]); 1806b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 1807b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru UnicodeString test; 1808b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru SimpleDateFormat univ("yyyy MM dd HH:mm zzz", en, status); 1809b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru ASSERT_OK(status); 1810b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru const UnicodeString times[] = { 1811b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "2004 01 02 03:04 PST", 1812b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "2004 07 08 09:10 PDT" 1813b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru }; 1814b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru int32_t times_length = sizeof(times)/sizeof(times[0]); 1815b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru for (int i = 0; i < times_length; ++i) { 1816b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru UDate d = univ.parse(times[i], status); 1817b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru logln(UnicodeString("\ntime: ") + d); 1818b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru for (int j = 0; j < formats_length; ++j) { 1819b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru test.remove(); 1820b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru formats[j].format(d, test); 1821b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru logln("\ntest: '" + test + "'"); 1822b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru for (int k = 0; k < formats_length; ++k) { 1823b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru UDate t = formats[k].parse(test, status); 1824b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru if (U_SUCCESS(status)) { 1825b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru if (d != t) { 1826b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru errln((UnicodeString)"FAIL: format " + k + 1827b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru " incorrectly parsed output of format " + j + 1828b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru " (" + test + "), returned " + 1829b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru dateToString(t) + " instead of " + dateToString(d)); 1830b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru } else { 1831b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru logln((UnicodeString)"OK: format " + k + " parsed ok"); 1832b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru } 1833b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru } else if (status == U_PARSE_ERROR) { 1834b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru errln((UnicodeString)"FAIL: format " + k + 1835b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru " could not parse output of format " + j + 1836b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru " (" + test + ")"); 1837b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru } 1838b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru } 1839b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru } 1840b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru } 1841b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru} 1842b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 1843b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queruvoid DateFormatTest::TestGenericTimeZoneOrder() { 1844b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru // generic times should parse the same no matter what the placement of the time zone string 1845b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru // should work for standard and daylight times 1846b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 1847b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru const char* XDATA[] = { 1848b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "yyyy MM dd HH:mm zzz", 1849b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru // standard time, explicit daylight/standard 1850b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "y/M/d H:mm zzz", "pf", "2004/1/1 1:00 PT", "2004 01 01 01:00 PST", "2004/1/1 1:00 PST", 1851b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "y/M/d zzz H:mm", "pf", "2004/1/1 PT 1:00", "2004 01 01 01:00 PST", "2004/1/1 PST 1:00", 1852b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "zzz y/M/d H:mm", "pf", "PT 2004/1/1 1:00", "2004 01 01 01:00 PST", "PST 2004/1/1 1:00", 1853b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 1854b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru // standard time, generic 1855b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "y/M/d H:mm vvvv", "pf", "2004/1/1 1:00 PT", "2004 01 01 01:00 PST", "2004/1/1 1:00 Pacific Time", 1856b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "y/M/d vvvv H:mm", "pf", "2004/1/1 PT 1:00", "2004 01 01 01:00 PST", "2004/1/1 Pacific Time 1:00", 1857b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "vvvv y/M/d H:mm", "pf", "PT 2004/1/1 1:00", "2004 01 01 01:00 PST", "Pacific Time 2004/1/1 1:00", 1858b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 1859b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru // dahylight time, explicit daylight/standard 1860b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "y/M/d H:mm zzz", "pf", "2004/7/1 1:00 PT", "2004 07 01 01:00 PDT", "2004/7/1 1:00 PDT", 1861b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "y/M/d zzz H:mm", "pf", "2004/7/1 PT 1:00", "2004 07 01 01:00 PDT", "2004/7/1 PDT 1:00", 1862b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "zzz y/M/d H:mm", "pf", "PT 2004/7/1 1:00", "2004 07 01 01:00 PDT", "PDT 2004/7/1 1:00", 1863b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 1864b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru // daylight time, generic 1865b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "y/M/d H:mm vvvv", "pf", "2004/7/1 1:00 PT", "2004 07 01 01:00 PDT", "2004/7/1 1:00 Pacific Time", 1866b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "y/M/d vvvv H:mm", "pf", "2004/7/1 PT 1:00", "2004 07 01 01:00 PDT", "2004/7/1 Pacific Time 1:00", 1867b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru "vvvv y/M/d H:mm", "pf", "PT 2004/7/1 1:00", "2004 07 01 01:00 PDT", "Pacific Time 2004/7/1 1:00", 1868b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru }; 1869b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru const int32_t XDATA_length = sizeof(XDATA)/sizeof(XDATA[0]); 1870b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru Locale en("en"); 1871b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru expect(XDATA, XDATA_length, en); 1872b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru} 1873b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 1874b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queruvoid DateFormatTest::TestZTimeZoneParsing(void) { 1875b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru UErrorCode status = U_ZERO_ERROR; 1876b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru const Locale en("en"); 1877b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru UnicodeString test; 1878b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru //SimpleDateFormat univ("yyyy-MM-dd'T'HH:mm Z", en, status); 1879b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru SimpleDateFormat univ("HH:mm Z", en, status); 1880b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru const TimeZone *t = TimeZone::getGMT(); 1881b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru univ.setTimeZone(*t); 1882b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 1883b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru univ.setLenient(false); 1884b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru ParsePosition pp(0); 1885b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru ASSERT_OK(status); 1886b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru struct { 1887b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru UnicodeString input; 1888b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru UnicodeString expected_result; 1889b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru } tests[] = { 1890b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "11:00 -0200", "13:00 +0000" }, 1891b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "11:00 +0200", "09:00 +0000" }, 1892b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "11:00 +0400", "07:00 +0000" }, 1893b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "11:00 +0530", "05:30 +0000" } 1894b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru }; 1895b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 1896b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru UnicodeString result; 1897b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru int32_t tests_length = sizeof(tests)/sizeof(tests[0]); 1898b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru for (int i = 0; i < tests_length; ++i) { 1899b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru pp.setIndex(0); 1900b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru UDate d = univ.parse(tests[i].input, pp); 1901b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru if(pp.getIndex() != tests[i].input.length()){ 1902b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru errln("setZoneString() did not succeed. Consumed: %i instead of %i", 1903b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru pp.getIndex(), tests[i].input.length()); 1904b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru return; 1905b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru } 1906b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru result.remove(); 1907b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru univ.format(d, result); 1908b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru if(result != tests[i].expected_result) { 1909b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru errln("Expected " + tests[i].expected_result 1910b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru + " got " + result); 1911b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru return; 1912b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru } 1913b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru logln("SUCCESS: Parsed " + tests[i].input 1914b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru + " got " + result 1915b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru + " expected " + tests[i].expected_result); 1916b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru } 1917b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru} 1918b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 1919b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queruvoid DateFormatTest::TestHost(void) 1920b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru{ 1921b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru#ifdef U_WINDOWS 1922b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru Win32DateTimeTest::testLocales(this); 1923b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru#endif 1924b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru} 1925b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 1926b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru// Relative Date Tests 1927b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 1928b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queruvoid DateFormatTest::TestRelative(int daysdelta, 1929b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru const Locale& loc, 1930b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru const char *expectChars) { 1931b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru char banner[25]; 1932b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru sprintf(banner, "%d", daysdelta); 1933b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru UnicodeString bannerStr(banner, ""); 1934b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 1935b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru UErrorCode status = U_ZERO_ERROR; 1936b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 1937b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru FieldPosition pos(0); 1938b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru UnicodeString test; 1939b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru Locale en("en"); 1940b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru DateFormat *fullrelative = DateFormat::createDateInstance(DateFormat::kFullRelative, loc); 1941b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 1942b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru if (fullrelative == NULL) { 1943b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru errln("DateFormat::createDateInstance(DateFormat::kFullRelative, %s) returned NULL", loc.getName()); 1944b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru return; 1945b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru } 1946b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 1947b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru DateFormat *full = DateFormat::createDateInstance(DateFormat::kFull , loc); 1948b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 1949b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru if (full == NULL) { 1950b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru errln("DateFormat::createDateInstance(DateFormat::kFull, %s) returned NULL", loc.getName()); 1951b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru return; 1952b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru } 1953b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 1954b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru DateFormat *en_full = DateFormat::createDateInstance(DateFormat::kFull, en); 1955b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 1956b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru if (en_full == NULL) { 1957b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru errln("DateFormat::createDateInstance(DateFormat::kFull, en) returned NULL"); 1958b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru return; 1959b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru } 1960b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 1961b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru DateFormat *en_fulltime = DateFormat::createDateTimeInstance(DateFormat::kFull,DateFormat::kFull,en); 1962b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 1963b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru if (en_fulltime == NULL) { 1964b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru errln("DateFormat::createDateTimeInstance(DateFormat::kFull, DateFormat::kFull, en) returned NULL"); 1965b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru return; 1966b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru } 1967b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 1968b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru UnicodeString result; 1969b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru UnicodeString normalResult; 1970b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru UnicodeString expect; 1971b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru UnicodeString parseResult; 1972b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 1973b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru Calendar *c = Calendar::createInstance(status); 1974b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 1975b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru // Today = Today 1976b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru c->setTime(Calendar::getNow(), status); 1977b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru if(daysdelta != 0) { 1978b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru c->add(Calendar::DATE,daysdelta,status); 1979b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru } 1980b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru ASSERT_OK(status); 1981b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 1982b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru // calculate the expected string 1983b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru if(expectChars != NULL) { 1984b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru expect = expectChars; 1985b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru } else { 1986b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru full->format(*c, expect, pos); // expected = normal full 1987b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru } 1988b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 1989b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru fullrelative ->format(*c, result, pos); 1990b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru en_full ->format(*c, normalResult, pos); 1991b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 1992b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru if(result != expect) { 1993b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru errln("FAIL: Relative Format ["+bannerStr+"] of "+normalResult+" failed, expected "+expect+" but got " + result); 1994b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru } else { 1995b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru logln("PASS: Relative Format ["+bannerStr+"] of "+normalResult+" got " + result); 1996b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru } 1997b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 1998b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 1999b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru //verify 2000b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru UDate d = fullrelative->parse(result, status); 2001b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru ASSERT_OK(status); 2002b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 2003b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru UnicodeString parseFormat; // parse rel->format full 2004b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru en_full->format(d, parseFormat, status); 2005b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 2006b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru UnicodeString origFormat; 2007b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru en_full->format(*c, origFormat, pos); 2008b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 2009b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru if(parseFormat!=origFormat) { 2010b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru errln("FAIL: Relative Parse ["+bannerStr+"] of "+result+" failed, expected "+parseFormat+" but got "+origFormat); 2011b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru } else { 2012b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru logln("PASS: Relative Parse ["+bannerStr+"] of "+result+" passed, got "+parseFormat); 2013b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru } 2014b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 2015b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru delete full; 2016b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru delete fullrelative; 2017b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru delete en_fulltime; 2018b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru delete en_full; 2019b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru delete c; 2020b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru} 2021b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 2022b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 2023b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queruvoid DateFormatTest::TestRelative(void) 2024b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru{ 2025b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru Locale en("en"); 2026b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru TestRelative( 0, en, "Today"); 2027b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru TestRelative(-1, en, "Yesterday"); 2028b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru TestRelative( 1, en, "Tomorrow"); 2029b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru TestRelative( 2, en, NULL); 2030b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru TestRelative( -2, en, NULL); 2031b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru TestRelative( 3, en, NULL); 2032b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru TestRelative( -3, en, NULL); 2033b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru TestRelative( 300, en, NULL); 2034b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru TestRelative( -300, en, NULL); 2035b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru} 2036b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 2037b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queruvoid DateFormatTest::TestRelativeClone(void) 2038b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru{ 2039b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru /* 2040b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru Verify that a cloned formatter gives the same results 2041b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru and is useable after the original has been deleted. 2042b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru */ 2043b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru UErrorCode status = U_ZERO_ERROR; 2044b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru Locale loc("en"); 2045b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru UDate now = Calendar::getNow(); 2046b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru DateFormat *full = DateFormat::createDateInstance(DateFormat::kFullRelative, loc); 2047b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru if (full == NULL) { 2048b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru errln("FAIL: Can't create Relative date instance"); 2049b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru return; 2050b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru } 2051b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru UnicodeString result1; 2052b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru full->format(now, result1, status); 2053b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru Format *fullClone = full->clone(); 2054b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru delete full; 2055b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru full = NULL; 2056b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 2057b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru UnicodeString result2; 2058b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru fullClone->format(now, result2, status); 2059b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru ASSERT_OK(status); 2060b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru if (result1 != result2) { 2061b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru errln("FAIL: Clone returned different result from non-clone."); 2062b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru } 2063b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru delete fullClone; 2064b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru} 2065b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 2066b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queruvoid DateFormatTest::TestHostClone(void) 2067b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru{ 2068b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru /* 2069b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru Verify that a cloned formatter gives the same results 2070b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru and is useable after the original has been deleted. 2071b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru */ 2072b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru // This is mainly important on Windows. 2073b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru UErrorCode status = U_ZERO_ERROR; 2074b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru Locale loc("en_US@compat=host"); 2075b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru UDate now = Calendar::getNow(); 2076b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru DateFormat *full = DateFormat::createDateInstance(DateFormat::kFull, loc); 2077b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru if (full == NULL) { 2078b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru errln("FAIL: Can't create Relative date instance"); 2079b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru return; 2080b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru } 2081b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru UnicodeString result1; 2082b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru full->format(now, result1, status); 2083b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru Format *fullClone = full->clone(); 2084b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru delete full; 2085b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru full = NULL; 2086b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 2087b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru UnicodeString result2; 2088b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru fullClone->format(now, result2, status); 2089b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru ASSERT_OK(status); 2090b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru if (result1 != result2) { 2091b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru errln("FAIL: Clone returned different result from non-clone."); 2092b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru } 2093b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru delete fullClone; 2094b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru} 2095b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 2096b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queruvoid DateFormatTest::TestTimeZoneDisplayName() 2097b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru{ 2098b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru // This test data was ported from ICU4J. Don't know why the 6th column in there because it's not being 2099b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru // used currently. 2100b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru const char *fallbackTests[][6] = { 2101b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "en", "America/Los_Angeles", "2004-01-15T00:00:00Z", "Z", "-0800", "-8:00" }, 2102b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "en", "America/Los_Angeles", "2004-01-15T00:00:00Z", "ZZZZ", "GMT-08:00", "-8:00" }, 2103b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "en", "America/Los_Angeles", "2004-01-15T00:00:00Z", "z", "PST", "America/Los_Angeles" }, 2104b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "en", "America/Los_Angeles", "2004-01-15T00:00:00Z", "V", "PST", "America/Los_Angeles" }, 2105b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "en", "America/Los_Angeles", "2004-01-15T00:00:00Z", "zzzz", "Pacific Standard Time", "America/Los_Angeles" }, 2106b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "en", "America/Los_Angeles", "2004-07-15T00:00:00Z", "Z", "-0700", "-7:00" }, 2107b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "en", "America/Los_Angeles", "2004-07-15T00:00:00Z", "ZZZZ", "GMT-07:00", "-7:00" }, 2108b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "en", "America/Los_Angeles", "2004-07-15T00:00:00Z", "z", "PDT", "America/Los_Angeles" }, 2109b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "en", "America/Los_Angeles", "2004-07-15T00:00:00Z", "V", "PDT", "America/Los_Angeles" }, 2110b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "en", "America/Los_Angeles", "2004-07-15T00:00:00Z", "zzzz", "Pacific Daylight Time", "America/Los_Angeles" }, 2111b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "en", "America/Los_Angeles", "2004-07-15T00:00:00Z", "v", "PT", "America/Los_Angeles" }, 2112b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "en", "America/Los_Angeles", "2004-07-15T00:00:00Z", "vvvv", "Pacific Time", "America/Los_Angeles" }, 2113b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "en", "America/Los_Angeles", "2004-07-15T00:00:00Z", "VVVV", "United States (Los Angeles)", "America/Los_Angeles" }, 2114b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "en_GB", "America/Los_Angeles", "2004-01-15T12:00:00Z", "z", "PST", "America/Los_Angeles" }, 2115b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "en", "America/Phoenix", "2004-01-15T00:00:00Z", "Z", "-0700", "-7:00" }, 2116b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "en", "America/Phoenix", "2004-01-15T00:00:00Z", "ZZZZ", "GMT-07:00", "-7:00" }, 2117b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "en", "America/Phoenix", "2004-01-15T00:00:00Z", "z", "MST", "America/Phoenix" }, 2118b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "en", "America/Phoenix", "2004-01-15T00:00:00Z", "V", "MST", "America/Phoenix" }, 2119b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "en", "America/Phoenix", "2004-01-15T00:00:00Z", "zzzz", "Mountain Standard Time", "America/Phoenix" }, 2120b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "en", "America/Phoenix", "2004-07-15T00:00:00Z", "Z", "-0700", "-7:00" }, 2121b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "en", "America/Phoenix", "2004-07-15T00:00:00Z", "ZZZZ", "GMT-07:00", "-7:00" }, 2122b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "en", "America/Phoenix", "2004-07-15T00:00:00Z", "z", "MST", "America/Phoenix" }, 2123b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "en", "America/Phoenix", "2004-07-15T00:00:00Z", "V", "MST", "America/Phoenix" }, 2124b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "en", "America/Phoenix", "2004-07-15T00:00:00Z", "zzzz", "Mountain Standard Time", "America/Phoenix" }, 2125b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "en", "America/Phoenix", "2004-07-15T00:00:00Z", "v", "MST", "America/Phoenix" }, 2126b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "en", "America/Phoenix", "2004-07-15T00:00:00Z", "vvvv", "Mountain Standard Time", "America/Phoenix" }, 2127b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "en", "America/Phoenix", "2004-07-15T00:00:00Z", "VVVV", "United States (Phoenix)", "America/Phoenix" }, 2128b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 2129b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "en", "America/Argentina/Buenos_Aires", "2004-01-15T00:00:00Z", "Z", "-0300", "-3:00" }, 2130b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "en", "America/Argentina/Buenos_Aires", "2004-01-15T00:00:00Z", "ZZZZ", "GMT-03:00", "-3:00" }, 2131b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "en", "America/Argentina/Buenos_Aires", "2004-01-15T00:00:00Z", "z", "GMT-03:00", "-3:00" }, 2132b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "en", "America/Argentina/Buenos_Aires", "2004-01-15T00:00:00Z", "V", "ART", "-3:00" }, 2133b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "en", "America/Argentina/Buenos_Aires", "2004-01-15T00:00:00Z", "zzzz", "Argentina Time", "-3:00" }, 2134b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "en", "America/Argentina/Buenos_Aires", "2004-07-15T00:00:00Z", "Z", "-0300", "-3:00" }, 2135b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "en", "America/Argentina/Buenos_Aires", "2004-07-15T00:00:00Z", "ZZZZ", "GMT-03:00", "-3:00" }, 2136b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "en", "America/Argentina/Buenos_Aires", "2004-07-15T00:00:00Z", "z", "GMT-03:00", "-3:00" }, 2137b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "en", "America/Argentina/Buenos_Aires", "2004-07-15T00:00:00Z", "V", "ART", "-3:00" }, 2138b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "en", "America/Argentina/Buenos_Aires", "2004-07-15T00:00:00Z", "zzzz", "Argentina Time", "-3:00" }, 2139b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "en", "America/Argentina/Buenos_Aires", "2004-07-15T00:00:00Z", "v", "Argentina (Buenos Aires)", "America/Buenos_Aires" }, 2140b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "en", "America/Argentina/Buenos_Aires", "2004-07-15T00:00:00Z", "vvvv", "Argentina Time", "America/Buenos_Aires" }, 2141b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "en", "America/Argentina/Buenos_Aires", "2004-07-15T00:00:00Z", "VVVV", "Argentina (Buenos Aires)", "America/Buenos_Aires" }, 2142b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 2143b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "en", "America/Buenos_Aires", "2004-01-15T00:00:00Z", "Z", "-0300", "-3:00" }, 2144b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "en", "America/Buenos_Aires", "2004-01-15T00:00:00Z", "ZZZZ", "GMT-03:00", "-3:00" }, 2145b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "en", "America/Buenos_Aires", "2004-01-15T00:00:00Z", "z", "GMT-03:00", "-3:00" }, 2146b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "en", "America/Buenos_Aires", "2004-01-15T00:00:00Z", "V", "ART", "-3:00" }, 2147b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "en", "America/Buenos_Aires", "2004-01-15T00:00:00Z", "zzzz", "Argentina Time", "-3:00" }, 2148b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "en", "America/Buenos_Aires", "2004-07-15T00:00:00Z", "Z", "-0300", "-3:00" }, 2149b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "en", "America/Buenos_Aires", "2004-07-15T00:00:00Z", "ZZZZ", "GMT-03:00", "-3:00" }, 2150b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "en", "America/Buenos_Aires", "2004-07-15T00:00:00Z", "z", "GMT-03:00", "-3:00" }, 2151b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "en", "America/Buenos_Aires", "2004-07-15T00:00:00Z", "V", "ART", "-3:00" }, 2152b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "en", "America/Buenos_Aires", "2004-07-15T00:00:00Z", "zzzz", "Argentina Time", "-3:00" }, 2153b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "en", "America/Buenos_Aires", "2004-07-15T00:00:00Z", "v", "Argentina (Buenos Aires)", "America/Buenos_Aires" }, 2154b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "en", "America/Buenos_Aires", "2004-07-15T00:00:00Z", "vvvv", "Argentina Time", "America/Buenos_Aires" }, 2155b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "en", "America/Buenos_Aires", "2004-07-15T00:00:00Z", "VVVV", "Argentina (Buenos Aires)", "America/Buenos_Aires" }, 2156b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 2157b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "en", "America/Havana", "2004-01-15T00:00:00Z", "Z", "-0500", "-5:00" }, 2158b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "en", "America/Havana", "2004-01-15T00:00:00Z", "ZZZZ", "GMT-05:00", "-5:00" }, 2159b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "en", "America/Havana", "2004-01-15T00:00:00Z", "z", "GMT-05:00", "-5:00" }, 2160b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "en", "America/Havana", "2004-01-15T00:00:00Z", "V", "CST (Cuba)", "-5:00" }, 2161b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "en", "America/Havana", "2004-01-15T00:00:00Z", "zzzz", "Cuba Standard Time", "-5:00" }, 2162b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "en", "America/Havana", "2004-07-15T00:00:00Z", "Z", "-0400", "-4:00" }, 2163b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "en", "America/Havana", "2004-07-15T00:00:00Z", "ZZZZ", "GMT-04:00", "-4:00" }, 2164b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "en", "America/Havana", "2004-07-15T00:00:00Z", "z", "GMT-04:00", "-4:00" }, 2165b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "en", "America/Havana", "2004-07-15T00:00:00Z", "V", "CDT (Cuba)", "-4:00" }, 2166b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "en", "America/Havana", "2004-07-15T00:00:00Z", "zzzz", "Cuba Daylight Time", "-4:00" }, 2167b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "en", "America/Havana", "2004-07-15T00:00:00Z", "v", "Cuba Time", "America/Havana" }, 2168b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "en", "America/Havana", "2004-07-15T00:00:00Z", "vvvv", "Cuba Time", "America/Havana" }, 2169b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "en", "America/Havana", "2004-07-15T00:00:00Z", "VVVV", "Cuba Time", "America/Havana" }, 2170b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 2171b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "en", "Australia/ACT", "2004-01-15T00:00:00Z", "Z", "+1100", "+11:00" }, 2172b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "en", "Australia/ACT", "2004-01-15T00:00:00Z", "ZZZZ", "GMT+11:00", "+11:00" }, 2173b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "en", "Australia/ACT", "2004-01-15T00:00:00Z", "z", "GMT+11:00", "+11:00" }, 2174b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "en", "Australia/ACT", "2004-01-15T00:00:00Z", "V", "AEDT", "+11:00" }, 2175b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "en", "Australia/ACT", "2004-01-15T00:00:00Z", "zzzz", "Australian Eastern Daylight Time", "+11:00" }, 2176b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "en", "Australia/ACT", "2004-07-15T00:00:00Z", "Z", "+1000", "+10:00" }, 2177b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "en", "Australia/ACT", "2004-07-15T00:00:00Z", "ZZZZ", "GMT+10:00", "+10:00" }, 2178b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "en", "Australia/ACT", "2004-07-15T00:00:00Z", "z", "GMT+10:00", "+10:00" }, 2179b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "en", "Australia/ACT", "2004-07-15T00:00:00Z", "V", "AEST", "+10:00" }, 2180b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "en", "Australia/ACT", "2004-07-15T00:00:00Z", "zzzz", "Australian Eastern Standard Time", "+10:00" }, 2181b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "en", "Australia/ACT", "2004-07-15T00:00:00Z", "v", "Australia (Sydney)", "Australia/Sydney" }, 2182b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "en", "Australia/ACT", "2004-07-15T00:00:00Z", "vvvv", "Eastern Australia Time", "Australia/Sydney" }, 2183b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "en", "Australia/ACT", "2004-07-15T00:00:00Z", "VVVV", "Australia (Sydney)", "Australia/Sydney" }, 2184b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 2185b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "en", "Australia/Sydney", "2004-01-15T00:00:00Z", "Z", "+1100", "+11:00" }, 2186b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "en", "Australia/Sydney", "2004-01-15T00:00:00Z", "ZZZZ", "GMT+11:00", "+11:00" }, 2187b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "en", "Australia/Sydney", "2004-01-15T00:00:00Z", "z", "GMT+11:00", "+11:00" }, 2188b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "en", "Australia/Sydney", "2004-01-15T00:00:00Z", "V", "AEDT", "+11:00" }, 2189b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "en", "Australia/Sydney", "2004-01-15T00:00:00Z", "zzzz", "Australian Eastern Daylight Time", "+11:00" }, 2190b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "en", "Australia/Sydney", "2004-07-15T00:00:00Z", "Z", "+1000", "+10:00" }, 2191b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "en", "Australia/Sydney", "2004-07-15T00:00:00Z", "ZZZZ", "GMT+10:00", "+10:00" }, 2192b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "en", "Australia/Sydney", "2004-07-15T00:00:00Z", "z", "GMT+10:00", "+10:00" }, 2193b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "en", "Australia/Sydney", "2004-07-15T00:00:00Z", "V", "AEST", "+10:00" }, 2194b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "en", "Australia/Sydney", "2004-07-15T00:00:00Z", "zzzz", "Australian Eastern Standard Time", "+10:00" }, 2195b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "en", "Australia/Sydney", "2004-07-15T00:00:00Z", "v", "Australia (Sydney)", "Australia/Sydney" }, 2196b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "en", "Australia/Sydney", "2004-07-15T00:00:00Z", "vvvv", "Eastern Australia Time", "Australia/Sydney" }, 2197b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "en", "Australia/Sydney", "2004-07-15T00:00:00Z", "VVVV", "Australia (Sydney)", "Australia/Sydney" }, 2198b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 2199b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "en", "Europe/London", "2004-01-15T00:00:00Z", "Z", "+0000", "+0:00" }, 2200b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "en", "Europe/London", "2004-01-15T00:00:00Z", "ZZZZ", "GMT+00:00", "+0:00" }, 2201b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "en", "Europe/London", "2004-01-15T00:00:00Z", "z", "GMT", "+0:00" }, 2202b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "en", "Europe/London", "2004-01-15T00:00:00Z", "V", "GMT", "+0:00" }, 2203b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "en", "Europe/London", "2004-01-15T00:00:00Z", "zzzz", "Greenwich Mean Time", "+0:00" }, 2204b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "en", "Europe/London", "2004-07-15T00:00:00Z", "Z", "+0100", "+1:00" }, 2205b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "en", "Europe/London", "2004-07-15T00:00:00Z", "ZZZZ", "GMT+01:00", "+1:00" }, 2206b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "en", "Europe/London", "2004-07-15T00:00:00Z", "z", "GMT+01:00", "Europe/London" }, 2207b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "en", "Europe/London", "2004-07-15T00:00:00Z", "V", "BST", "Europe/London" }, 2208b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "en", "Europe/London", "2004-07-15T00:00:00Z", "zzzz", "British Summer Time", "Europe/London" }, 2209b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru // icu en.txt has exemplar city for this time zone 2210b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "en", "Europe/London", "2004-07-15T00:00:00Z", "v", "United Kingdom Time", "Europe/London" }, 2211b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "en", "Europe/London", "2004-07-15T00:00:00Z", "vvvv", "United Kingdom Time", "Europe/London" }, 2212b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "en", "Europe/London", "2004-07-15T00:00:00Z", "VVVV", "United Kingdom Time", "Europe/London" }, 2213b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 2214b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "en", "Etc/GMT+3", "2004-01-15T00:00:00Z", "Z", "-0300", "-3:00" }, 2215b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "en", "Etc/GMT+3", "2004-01-15T00:00:00Z", "ZZZZ", "GMT-03:00", "-3:00" }, 2216b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "en", "Etc/GMT+3", "2004-01-15T00:00:00Z", "z", "GMT-03:00", "-3:00" }, 2217b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "en", "Etc/GMT+3", "2004-01-15T00:00:00Z", "zzzz", "GMT-03:00", "-3:00" }, 2218b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "en", "Etc/GMT+3", "2004-07-15T00:00:00Z", "Z", "-0300", "-3:00" }, 2219b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "en", "Etc/GMT+3", "2004-07-15T00:00:00Z", "ZZZZ", "GMT-03:00", "-3:00" }, 2220b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "en", "Etc/GMT+3", "2004-07-15T00:00:00Z", "z", "GMT-03:00", "-3:00" }, 2221b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "en", "Etc/GMT+3", "2004-07-15T00:00:00Z", "zzzz", "GMT-03:00", "-3:00" }, 2222b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "en", "Etc/GMT+3", "2004-07-15T00:00:00Z", "v", "GMT-03:00", "-3:00" }, 2223b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "en", "Etc/GMT+3", "2004-07-15T00:00:00Z", "vvvv", "GMT-03:00", "-3:00" }, 2224b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 2225b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru // JB#5150 2226b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "en", "Asia/Calcutta", "2004-01-15T00:00:00Z", "Z", "+0530", "+5:30" }, 2227b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "en", "Asia/Calcutta", "2004-01-15T00:00:00Z", "ZZZZ", "GMT+05:30", "+5:30" }, 2228b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "en", "Asia/Calcutta", "2004-01-15T00:00:00Z", "z", "GMT+05:30", "+5:30" }, 2229b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "en", "Asia/Calcutta", "2004-01-15T00:00:00Z", "V", "IST", "+5:30" }, 2230b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "en", "Asia/Calcutta", "2004-01-15T00:00:00Z", "zzzz", "India Standard Time", "+5:30" }, 2231b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "en", "Asia/Calcutta", "2004-07-15T00:00:00Z", "Z", "+0530", "+5:30" }, 2232b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "en", "Asia/Calcutta", "2004-07-15T00:00:00Z", "ZZZZ", "GMT+05:30", "+5:30" }, 2233b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "en", "Asia/Calcutta", "2004-07-15T00:00:00Z", "z", "GMT+05:30", "+05:30" }, 2234b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "en", "Asia/Calcutta", "2004-07-15T00:00:00Z", "V", "IST", "+05:30" }, 2235b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "en", "Asia/Calcutta", "2004-07-15T00:00:00Z", "zzzz", "India Standard Time", "+5:30" }, 2236b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "en", "Asia/Calcutta", "2004-07-15T00:00:00Z", "v", "India Time", "Asia/Calcutta" }, 2237b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "en", "Asia/Calcutta", "2004-07-15T00:00:00Z", "vvvv", "India Standard Time", "Asia/Calcutta" }, 2238b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 2239b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru // ========== 2240b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 2241b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "de", "America/Los_Angeles", "2004-01-15T00:00:00Z", "Z", "-0800", "-8:00" }, 2242b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "de", "America/Los_Angeles", "2004-01-15T00:00:00Z", "ZZZZ", "GMT-08:00", "-8:00" }, 2243b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "de", "America/Los_Angeles", "2004-01-15T00:00:00Z", "z", "GMT-08:00", "-8:00" }, 2244b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "de", "America/Los_Angeles", "2004-01-15T00:00:00Z", "zzzz", "GMT-08:00", "-8:00" }, 2245b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "de", "America/Los_Angeles", "2004-07-15T00:00:00Z", "Z", "-0700", "-7:00" }, 2246b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "de", "America/Los_Angeles", "2004-07-15T00:00:00Z", "ZZZZ", "GMT-07:00", "-7:00" }, 2247b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "de", "America/Los_Angeles", "2004-07-15T00:00:00Z", "z", "GMT-07:00", "-7:00" }, 2248b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "de", "America/Los_Angeles", "2004-07-15T00:00:00Z", "zzzz", "GMT-07:00", "-7:00" }, 2249b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "de", "America/Los_Angeles", "2004-07-15T00:00:00Z", "v", "Vereinigte Staaten (Los Angeles)", "America/Los_Angeles" }, 2250b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "de", "America/Los_Angeles", "2004-07-15T00:00:00Z", "vvvv", "Vereinigte Staaten (Los Angeles)", "America/Los_Angeles" }, 2251b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 2252b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "de", "America/Argentina/Buenos_Aires", "2004-01-15T00:00:00Z", "Z", "-0300", "-3:00" }, 2253b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "de", "America/Argentina/Buenos_Aires", "2004-01-15T00:00:00Z", "ZZZZ", "GMT-03:00", "-3:00" }, 2254b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "de", "America/Argentina/Buenos_Aires", "2004-01-15T00:00:00Z", "z", "GMT-03:00", "-3:00" }, 2255b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "de", "America/Argentina/Buenos_Aires", "2004-01-15T00:00:00Z", "zzzz", "GMT-03:00", "-3:00" }, 2256b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "de", "America/Argentina/Buenos_Aires", "2004-07-15T00:00:00Z", "Z", "-0300", "-3:00" }, 2257b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "de", "America/Argentina/Buenos_Aires", "2004-07-15T00:00:00Z", "ZZZZ", "GMT-03:00", "-3:00" }, 2258b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "de", "America/Argentina/Buenos_Aires", "2004-07-15T00:00:00Z", "z", "GMT-03:00", "-3:00" }, 2259b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "de", "America/Argentina/Buenos_Aires", "2004-07-15T00:00:00Z", "zzzz", "GMT-03:00", "-3:00" }, 2260b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "de", "America/Argentina/Buenos_Aires", "2004-07-15T00:00:00Z", "v", "Argentinien (Buenos Aires)", "America/Buenos_Aires" }, 2261b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "de", "America/Argentina/Buenos_Aires", "2004-07-15T00:00:00Z", "vvvv", "Argentinien (Buenos Aires)", "America/Buenos_Aires" }, 2262b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 2263b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "de", "America/Buenos_Aires", "2004-01-15T00:00:00Z", "Z", "-0300", "-3:00" }, 2264b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "de", "America/Buenos_Aires", "2004-01-15T00:00:00Z", "ZZZZ", "GMT-03:00", "-3:00" }, 2265b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "de", "America/Buenos_Aires", "2004-01-15T00:00:00Z", "z", "GMT-03:00", "-3:00" }, 2266b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "de", "America/Buenos_Aires", "2004-01-15T00:00:00Z", "zzzz", "GMT-03:00", "-3:00" }, 2267b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "de", "America/Buenos_Aires", "2004-07-15T00:00:00Z", "Z", "-0300", "-3:00" }, 2268b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "de", "America/Buenos_Aires", "2004-07-15T00:00:00Z", "ZZZZ", "GMT-03:00", "-3:00" }, 2269b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "de", "America/Buenos_Aires", "2004-07-15T00:00:00Z", "z", "GMT-03:00", "-3:00" }, 2270b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "de", "America/Buenos_Aires", "2004-07-15T00:00:00Z", "zzzz", "GMT-03:00", "-3:00" }, 2271b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "de", "America/Buenos_Aires", "2004-07-15T00:00:00Z", "v", "Argentinien (Buenos Aires)", "America/Buenos_Aires" }, 2272b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "de", "America/Buenos_Aires", "2004-07-15T00:00:00Z", "vvvv", "Argentinien (Buenos Aires)", "America/Buenos_Aires" }, 2273b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 2274b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "de", "America/Havana", "2004-01-15T00:00:00Z", "Z", "-0500", "-5:00" }, 2275b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "de", "America/Havana", "2004-01-15T00:00:00Z", "ZZZZ", "GMT-05:00", "-5:00" }, 2276b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "de", "America/Havana", "2004-01-15T00:00:00Z", "z", "GMT-05:00", "-5:00" }, 2277b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "de", "America/Havana", "2004-01-15T00:00:00Z", "zzzz", "GMT-05:00", "-5:00" }, 2278b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "de", "America/Havana", "2004-07-15T00:00:00Z", "Z", "-0400", "-4:00" }, 2279b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "de", "America/Havana", "2004-07-15T00:00:00Z", "ZZZZ", "GMT-04:00", "-4:00" }, 2280b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "de", "America/Havana", "2004-07-15T00:00:00Z", "z", "GMT-04:00", "-4:00" }, 2281b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "de", "America/Havana", "2004-07-15T00:00:00Z", "zzzz", "GMT-04:00", "-4:00" }, 2282b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "de", "America/Havana", "2004-07-15T00:00:00Z", "v", "Kuba", "America/Havana" }, 2283b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "de", "America/Havana", "2004-07-15T00:00:00Z", "vvvv", "Kuba", "America/Havana" }, 2284b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru // added to test proper fallback of country name 2285b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "de_CH", "America/Havana", "2004-07-15T00:00:00Z", "v", "Kuba", "America/Havana" }, 2286b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "de_CH", "America/Havana", "2004-07-15T00:00:00Z", "vvvv", "Kuba", "America/Havana" }, 2287b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 2288b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "de", "Australia/ACT", "2004-01-15T00:00:00Z", "Z", "+1100", "+11:00" }, 2289b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "de", "Australia/ACT", "2004-01-15T00:00:00Z", "ZZZZ", "GMT+11:00", "+11:00" }, 2290b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "de", "Australia/ACT", "2004-01-15T00:00:00Z", "z", "GMT+11:00", "+11:00" }, 2291b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "de", "Australia/ACT", "2004-01-15T00:00:00Z", "zzzz", "GMT+11:00", "+11:00" }, 2292b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "de", "Australia/ACT", "2004-07-15T00:00:00Z", "Z", "+1000", "+10:00" }, 2293b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "de", "Australia/ACT", "2004-07-15T00:00:00Z", "ZZZZ", "GMT+10:00", "+10:00" }, 2294b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "de", "Australia/ACT", "2004-07-15T00:00:00Z", "z", "GMT+10:00", "+10:00" }, 2295b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "de", "Australia/ACT", "2004-07-15T00:00:00Z", "zzzz", "GMT+10:00", "+10:00" }, 2296b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "de", "Australia/ACT", "2004-07-15T00:00:00Z", "v", "Australien (Sydney)", "Australia/Sydney" }, 2297b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "de", "Australia/ACT", "2004-07-15T00:00:00Z", "vvvv", "Australien (Sydney)", "Australia/Sydney" }, 2298b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 2299b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "de", "Australia/Sydney", "2004-01-15T00:00:00Z", "Z", "+1100", "+11:00" }, 2300b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "de", "Australia/Sydney", "2004-01-15T00:00:00Z", "ZZZZ", "GMT+11:00", "+11:00" }, 2301b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "de", "Australia/Sydney", "2004-01-15T00:00:00Z", "z", "GMT+11:00", "+11:00" }, 2302b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "de", "Australia/Sydney", "2004-01-15T00:00:00Z", "zzzz", "GMT+11:00", "+11:00" }, 2303b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "de", "Australia/Sydney", "2004-07-15T00:00:00Z", "Z", "+1000", "+10:00" }, 2304b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "de", "Australia/Sydney", "2004-07-15T00:00:00Z", "ZZZZ", "GMT+10:00", "+10:00" }, 2305b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "de", "Australia/Sydney", "2004-07-15T00:00:00Z", "z", "GMT+10:00", "+10:00" }, 2306b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "de", "Australia/Sydney", "2004-07-15T00:00:00Z", "zzzz", "GMT+10:00", "+10:00" }, 2307b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "de", "Australia/Sydney", "2004-07-15T00:00:00Z", "v", "Australien (Sydney)", "Australia/Sydney" }, 2308b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "de", "Australia/Sydney", "2004-07-15T00:00:00Z", "vvvv", "Australien (Sydney)", "Australia/Sydney" }, 2309b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 2310b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "de", "Europe/London", "2004-01-15T00:00:00Z", "Z", "+0000", "+0:00" }, 2311b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "de", "Europe/London", "2004-01-15T00:00:00Z", "ZZZZ", "GMT+00:00", "+0:00" }, 2312b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "de", "Europe/London", "2004-01-15T00:00:00Z", "z", "GMT+00:00", "+0:00" }, 2313b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "de", "Europe/London", "2004-01-15T00:00:00Z", "zzzz", "GMT+00:00", "+0:00" }, 2314b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "de", "Europe/London", "2004-07-15T00:00:00Z", "Z", "+0100", "+1:00" }, 2315b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "de", "Europe/London", "2004-07-15T00:00:00Z", "ZZZZ", "GMT+01:00", "+1:00" }, 2316b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "de", "Europe/London", "2004-07-15T00:00:00Z", "z", "GMT+01:00", "+1:00" }, 2317b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "de", "Europe/London", "2004-07-15T00:00:00Z", "zzzz", "GMT+01:00", "+1:00" }, 2318b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "de", "Europe/London", "2004-07-15T00:00:00Z", "v", "Vereinigtes K\\u00f6nigreich", "Europe/London" }, 2319b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "de", "Europe/London", "2004-07-15T00:00:00Z", "vvvv", "Vereinigtes K\\u00f6nigreich", "Europe/London" }, 2320b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 2321b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "de", "Etc/GMT+3", "2004-01-15T00:00:00Z", "Z", "-0300", "-3:00" }, 2322b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "de", "Etc/GMT+3", "2004-01-15T00:00:00Z", "ZZZZ", "GMT-03:00", "-3:00" }, 2323b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "de", "Etc/GMT+3", "2004-01-15T00:00:00Z", "z", "GMT-03:00", "-3:00" }, 2324b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "de", "Etc/GMT+3", "2004-01-15T00:00:00Z", "zzzz", "GMT-03:00", "-3:00" }, 2325b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "de", "Etc/GMT+3", "2004-07-15T00:00:00Z", "Z", "-0300", "-3:00" }, 2326b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "de", "Etc/GMT+3", "2004-07-15T00:00:00Z", "ZZZZ", "GMT-03:00", "-3:00" }, 2327b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "de", "Etc/GMT+3", "2004-07-15T00:00:00Z", "z", "GMT-03:00", "-3:00" }, 2328b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "de", "Etc/GMT+3", "2004-07-15T00:00:00Z", "zzzz", "GMT-03:00", "-3:00" }, 2329b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "de", "Etc/GMT+3", "2004-07-15T00:00:00Z", "v", "GMT-03:00", "-3:00" }, 2330b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "de", "Etc/GMT+3", "2004-07-15T00:00:00Z", "vvvv", "GMT-03:00", "-3:00" }, 2331b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 2332b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru // JB#5150 2333b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "de", "Asia/Calcutta", "2004-01-15T00:00:00Z", "Z", "+0530", "+5:30" }, 2334b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "de", "Asia/Calcutta", "2004-01-15T00:00:00Z", "ZZZZ", "GMT+05:30", "+5:30" }, 2335b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "de", "Asia/Calcutta", "2004-01-15T00:00:00Z", "z", "GMT+05:30", "+5:30" }, 2336b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "de", "Asia/Calcutta", "2004-01-15T00:00:00Z", "zzzz", "GMT+05:30", "+5:30" }, 2337b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "de", "Asia/Calcutta", "2004-07-15T00:00:00Z", "Z", "+0530", "+5:30" }, 2338b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "de", "Asia/Calcutta", "2004-07-15T00:00:00Z", "ZZZZ", "GMT+05:30", "+5:30" }, 2339b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "de", "Asia/Calcutta", "2004-07-15T00:00:00Z", "z", "GMT+05:30", "+05:30" }, 2340b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "de", "Asia/Calcutta", "2004-07-15T00:00:00Z", "zzzz", "GMT+05:30", "+5:30" }, 2341b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "de", "Asia/Calcutta", "2004-07-15T00:00:00Z", "v", "Indien", "Asia/Calcutta" }, 2342b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "de", "Asia/Calcutta", "2004-07-15T00:00:00Z", "vvvv", "Indien", "Asia/Calcutta" }, 2343b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 2344b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru // ========== 2345b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 2346b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "zh", "America/Los_Angeles", "2004-01-15T00:00:00Z", "Z", "-0800", "-8:00" }, 2347b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "zh", "America/Los_Angeles", "2004-01-15T00:00:00Z", "ZZZZ", "GMT-0800", "-8:00" }, 2348b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "zh", "America/Los_Angeles", "2004-01-15T00:00:00Z", "z", "GMT-0800", "America/Los_Angeles" }, 2349b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "zh", "America/Los_Angeles", "2004-01-15T00:00:00Z", "zzzz", "\\u592a\\u5e73\\u6d0b\\u6807\\u51c6\\u65f6\\u95f4", "America/Los_Angeles" }, 2350b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "zh", "America/Los_Angeles", "2004-07-15T00:00:00Z", "Z", "-0700", "-7:00" }, 2351b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "zh", "America/Los_Angeles", "2004-07-15T00:00:00Z", "ZZZZ", "GMT-0700", "-7:00" }, 2352b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "zh", "America/Los_Angeles", "2004-07-15T00:00:00Z", "z", "GMT-0700", "America/Los_Angeles" }, 2353b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "zh", "America/Los_Angeles", "2004-07-15T00:00:00Z", "zzzz", "\\u592a\\u5e73\\u6d0b\\u590f\\u4ee4\\u65f6\\u95f4", "America/Los_Angeles" }, 2354b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru // icu zh.txt has exemplar city for this time zone 2355b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "zh", "America/Los_Angeles", "2004-07-15T00:00:00Z", "v", "\\u7f8e\\u56fd (\\u6d1b\\u6749\\u77f6)", "America/Los_Angeles" }, 2356b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "zh", "America/Los_Angeles", "2004-07-15T00:00:00Z", "vvvv", "\\u7f8e\\u56fd (\\u6d1b\\u6749\\u77f6)", "America/Los_Angeles" }, 2357b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 2358b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "zh", "America/Argentina/Buenos_Aires", "2004-01-15T00:00:00Z", "Z", "-0300", "-3:00" }, 2359b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "zh", "America/Argentina/Buenos_Aires", "2004-01-15T00:00:00Z", "ZZZZ", "GMT-0300", "-3:00" }, 2360b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "zh", "America/Argentina/Buenos_Aires", "2004-01-15T00:00:00Z", "z", "GMT-0300", "-3:00" }, 2361b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "zh", "America/Argentina/Buenos_Aires", "2004-01-15T00:00:00Z", "zzzz", "GMT-0300", "-3:00" }, 2362b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "zh", "America/Argentina/Buenos_Aires", "2004-07-15T00:00:00Z", "Z", "-0300", "-3:00" }, 2363b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "zh", "America/Argentina/Buenos_Aires", "2004-07-15T00:00:00Z", "ZZZZ", "GMT-0300", "-3:00" }, 2364b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "zh", "America/Argentina/Buenos_Aires", "2004-07-15T00:00:00Z", "z", "GMT-0300", "-3:00" }, 2365b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "zh", "America/Argentina/Buenos_Aires", "2004-07-15T00:00:00Z", "zzzz", "GMT-0300", "-3:00" }, 2366b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru // icu zh.txt does not have info for this time zone 2367b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "zh", "America/Argentina/Buenos_Aires", "2004-07-15T00:00:00Z", "v", "\\u963f\\u6839\\u5ef7 (\\u5e03\\u5b9c\\u8bfa\\u65af\\u827e\\u5229\\u65af)", "America/Buenos_Aires" }, 2368b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "zh", "America/Argentina/Buenos_Aires", "2004-07-15T00:00:00Z", "vvvv", "\\u963f\\u6839\\u5ef7 (\\u5e03\\u5b9c\\u8bfa\\u65af\\u827e\\u5229\\u65af)", "America/Buenos_Aires" }, 2369b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 2370b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "zh", "America/Buenos_Aires", "2004-01-15T00:00:00Z", "Z", "-0300", "-3:00" }, 2371b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "zh", "America/Buenos_Aires", "2004-01-15T00:00:00Z", "ZZZZ", "GMT-0300", "-3:00" }, 2372b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "zh", "America/Buenos_Aires", "2004-01-15T00:00:00Z", "z", "GMT-0300", "-3:00" }, 2373b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "zh", "America/Buenos_Aires", "2004-01-15T00:00:00Z", "zzzz", "GMT-0300", "-3:00" }, 2374b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "zh", "America/Buenos_Aires", "2004-07-15T00:00:00Z", "Z", "-0300", "-3:00" }, 2375b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "zh", "America/Buenos_Aires", "2004-07-15T00:00:00Z", "ZZZZ", "GMT-0300", "-3:00" }, 2376b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "zh", "America/Buenos_Aires", "2004-07-15T00:00:00Z", "z", "GMT-0300", "-3:00" }, 2377b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "zh", "America/Buenos_Aires", "2004-07-15T00:00:00Z", "zzzz", "GMT-0300", "-3:00" }, 2378b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "zh", "America/Buenos_Aires", "2004-07-15T00:00:00Z", "v", "\\u963f\\u6839\\u5ef7 (\\u5e03\\u5b9c\\u8bfa\\u65af\\u827e\\u5229\\u65af)", "America/Buenos_Aires" }, 2379b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "zh", "America/Buenos_Aires", "2004-07-15T00:00:00Z", "vvvv", "\\u963f\\u6839\\u5ef7 (\\u5e03\\u5b9c\\u8bfa\\u65af\\u827e\\u5229\\u65af)", "America/Buenos_Aires" }, 2380b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 2381b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "zh", "America/Havana", "2004-01-15T00:00:00Z", "Z", "-0500", "-5:00" }, 2382b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "zh", "America/Havana", "2004-01-15T00:00:00Z", "ZZZZ", "GMT-0500", "-5:00" }, 2383b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "zh", "America/Havana", "2004-01-15T00:00:00Z", "z", "GMT-0500", "-5:00" }, 2384b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "zh", "America/Havana", "2004-01-15T00:00:00Z", "zzzz", "GMT-0500", "-5:00" }, 2385b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "zh", "America/Havana", "2004-07-15T00:00:00Z", "Z", "-0400", "-4:00" }, 2386b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "zh", "America/Havana", "2004-07-15T00:00:00Z", "ZZZZ", "GMT-0400", "-4:00" }, 2387b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "zh", "America/Havana", "2004-07-15T00:00:00Z", "z", "GMT-0400", "-4:00" }, 2388b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "zh", "America/Havana", "2004-07-15T00:00:00Z", "zzzz", "GMT-0400", "-4:00" }, 2389b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "zh", "America/Havana", "2004-07-15T00:00:00Z", "v", "\\u53e4\\u5df4", "America/Havana" }, 2390b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "zh", "America/Havana", "2004-07-15T00:00:00Z", "vvvv", "\\u53e4\\u5df4", "America/Havana" }, 2391b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 2392b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "zh", "Australia/ACT", "2004-01-15T00:00:00Z", "Z", "+1100", "+11:00" }, 2393b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "zh", "Australia/ACT", "2004-01-15T00:00:00Z", "ZZZZ", "GMT+1100", "+11:00" }, 2394b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "zh", "Australia/ACT", "2004-01-15T00:00:00Z", "z", "GMT+1100", "+11:00" }, 2395b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "zh", "Australia/ACT", "2004-01-15T00:00:00Z", "zzzz", "\\u6fb3\\u5927\\u5229\\u4e9a\\u4e1c\\u90e8\\u590f\\u4ee4\\u65f6\\u95f4", "+11:00" }, 2396b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "zh", "Australia/ACT", "2004-07-15T00:00:00Z", "Z", "+1000", "+10:00" }, 2397b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "zh", "Australia/ACT", "2004-07-15T00:00:00Z", "ZZZZ", "GMT+1000", "+10:00" }, 2398b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "zh", "Australia/ACT", "2004-07-15T00:00:00Z", "z", "GMT+1000", "+10:00" }, 2399b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "zh", "Australia/ACT", "2004-07-15T00:00:00Z", "zzzz", "GMT+1000", "+10:00" }, 2400b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru // icu zh.txt does not have info for this time zone 2401b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "zh", "Australia/ACT", "2004-07-15T00:00:00Z", "v", "\\u6fb3\\u5927\\u5229\\u4e9a (\\u6089\\u5c3c)", "Australia/Sydney" }, 2402b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "zh", "Australia/ACT", "2004-07-15T00:00:00Z", "vvvv", "\\u6fb3\\u5927\\u5229\\u4e9a (\\u6089\\u5c3c)", "Australia/Sydney" }, 2403b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 2404b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "zh", "Australia/Sydney", "2004-01-15T00:00:00Z", "Z", "+1100", "+11:00" }, 2405b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "zh", "Australia/Sydney", "2004-01-15T00:00:00Z", "ZZZZ", "GMT+1100", "+11:00" }, 2406b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "zh", "Australia/Sydney", "2004-01-15T00:00:00Z", "z", "GMT+1100", "+11:00" }, 2407b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "zh", "Australia/Sydney", "2004-01-15T00:00:00Z", "zzzz", "\\u6fb3\\u5927\\u5229\\u4e9a\\u4e1c\\u90e8\\u590f\\u4ee4\\u65f6\\u95f4", "+11:00" }, 2408b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "zh", "Australia/Sydney", "2004-07-15T00:00:00Z", "Z", "+1000", "+10:00" }, 2409b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "zh", "Australia/Sydney", "2004-07-15T00:00:00Z", "ZZZZ", "GMT+1000", "+10:00" }, 2410b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "zh", "Australia/Sydney", "2004-07-15T00:00:00Z", "z", "GMT+1000", "+10:00" }, 2411b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "zh", "Australia/Sydney", "2004-07-15T00:00:00Z", "zzzz", "GMT+1000", "+10:00" }, 2412b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "zh", "Australia/Sydney", "2004-07-15T00:00:00Z", "v", "\\u6fb3\\u5927\\u5229\\u4e9a (\\u6089\\u5c3c)", "Australia/Sydney" }, 2413b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "zh", "Australia/Sydney", "2004-07-15T00:00:00Z", "vvvv", "\\u6fb3\\u5927\\u5229\\u4e9a (\\u6089\\u5c3c)", "Australia/Sydney" }, 2414b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 2415b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "zh", "Europe/London", "2004-01-15T00:00:00Z", "Z", "+0000", "+0:00" }, 2416b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "zh", "Europe/London", "2004-01-15T00:00:00Z", "ZZZZ", "GMT+0000", "+0:00" }, 2417b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "zh", "Europe/London", "2004-01-15T00:00:00Z", "z", "GMT+0000", "+0:00" }, 2418b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "zh", "Europe/London", "2004-01-15T00:00:00Z", "V", "GMT", "+0:00" }, 2419b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "zh", "Europe/London", "2004-01-15T00:00:00Z", "zzzz", "\\u683C\\u6797\\u5C3C\\u6CBB\\u6807\\u51C6\\u65F6\\u95F4", "+0:00" }, 2420b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "zh", "Europe/London", "2004-07-15T00:00:00Z", "Z", "+0100", "+1:00" }, 2421b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "zh", "Europe/London", "2004-07-15T00:00:00Z", "ZZZZ", "GMT+0100", "+1:00" }, 2422b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "zh", "Europe/London", "2004-07-15T00:00:00Z", "z", "GMT+0100", "+1:00" }, 2423b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "zh", "Europe/London", "2004-07-15T00:00:00Z", "V", "BST", "+1:00" }, 2424b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "zh", "Europe/London", "2004-07-15T00:00:00Z", "zzzz", "GMT+0100", "+1:00" }, 2425b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "zh", "Europe/London", "2004-07-15T00:00:00Z", "v", "\\u82f1\\u56fd", "Europe/London" }, 2426b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "zh", "Europe/London", "2004-07-15T00:00:00Z", "vvvv", "\\u82f1\\u56fd", "Europe/London" }, 2427b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "zh", "Europe/London", "2004-07-15T00:00:00Z", "VVVV", "\\u82f1\\u56fd", "Europe/London" }, 2428b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 2429b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "zh", "Etc/GMT+3", "2004-01-15T00:00:00Z", "Z", "-0300", "-3:00" }, 2430b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "zh", "Etc/GMT+3", "2004-01-15T00:00:00Z", "ZZZZ", "GMT-0300", "-3:00" }, 2431b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "zh", "Etc/GMT+3", "2004-01-15T00:00:00Z", "z", "GMT-0300", "-3:00" }, 2432b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "zh", "Etc/GMT+3", "2004-01-15T00:00:00Z", "zzzz", "GMT-0300", "-3:00" }, 2433b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "zh", "Etc/GMT+3", "2004-07-15T00:00:00Z", "Z", "-0300", "-3:00" }, 2434b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "zh", "Etc/GMT+3", "2004-07-15T00:00:00Z", "ZZZZ", "GMT-0300", "-3:00" }, 2435b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "zh", "Etc/GMT+3", "2004-07-15T00:00:00Z", "z", "GMT-0300", "-3:00" }, 2436b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "zh", "Etc/GMT+3", "2004-07-15T00:00:00Z", "zzzz", "GMT-0300", "-3:00" }, 2437b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "zh", "Etc/GMT+3", "2004-07-15T00:00:00Z", "v", "GMT-0300", "-3:00" }, 2438b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "zh", "Etc/GMT+3", "2004-07-15T00:00:00Z", "vvvv", "GMT-0300", "-3:00" }, 2439b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 2440b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru // JB#5150 2441b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "zh", "Asia/Calcutta", "2004-01-15T00:00:00Z", "Z", "+0530", "+5:30" }, 2442b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "zh", "Asia/Calcutta", "2004-01-15T00:00:00Z", "ZZZZ", "GMT+0530", "+5:30" }, 2443b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "zh", "Asia/Calcutta", "2004-01-15T00:00:00Z", "z", "GMT+0530", "+5:30" }, 2444b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "zh", "Asia/Calcutta", "2004-01-15T00:00:00Z", "zzzz", "GMT+0530", "+5:30" }, 2445b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "zh", "Asia/Calcutta", "2004-07-15T00:00:00Z", "Z", "+0530", "+5:30" }, 2446b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "zh", "Asia/Calcutta", "2004-07-15T00:00:00Z", "ZZZZ", "GMT+0530", "+5:30" }, 2447b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "zh", "Asia/Calcutta", "2004-07-15T00:00:00Z", "z", "GMT+0530", "+05:30" }, 2448b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "zh", "Asia/Calcutta", "2004-07-15T00:00:00Z", "zzzz", "GMT+0530", "+5:30" }, 2449b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "zh", "Asia/Calcutta", "2004-07-15T00:00:00Z", "v", "\\u5370\\u5ea6", "Asia/Calcutta" }, 2450b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "zh", "Asia/Calcutta", "2004-07-15T00:00:00Z", "vvvv", "\\u5370\\u5EA6", "Asia/Calcutta" }, 2451b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 2452b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru // ========== 2453b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 2454b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "hi", "America/Los_Angeles", "2004-01-15T00:00:00Z", "Z", "-0800", "-8:00" }, 2455b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "hi", "America/Los_Angeles", "2004-01-15T00:00:00Z", "ZZZZ", "GMT-\\u0966\\u096e:\\u0966\\u0966", "-8:00" }, 2456b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "hi", "America/Los_Angeles", "2004-01-15T00:00:00Z", "z", "GMT-\\u0966\\u096e:\\u0966\\u0966", "-8:00" }, 2457b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "hi", "America/Los_Angeles", "2004-01-15T00:00:00Z", "zzzz", "GMT-\\u0966\\u096e:\\u0966\\u0966", "-8:00" }, 2458b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "hi", "America/Los_Angeles", "2004-07-15T00:00:00Z", "Z", "-0700", "-7:00" }, 2459b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "hi", "America/Los_Angeles", "2004-07-15T00:00:00Z", "ZZZZ", "GMT-\\u0966\\u096d:\\u0966\\u0966", "-7:00" }, 2460b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "hi", "America/Los_Angeles", "2004-07-15T00:00:00Z", "z", "GMT-\\u0966\\u096d:\\u0966\\u0966", "-7:00" }, 2461b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "hi", "America/Los_Angeles", "2004-07-15T00:00:00Z", "zzzz", "GMT-\\u0966\\u096d:\\u0966\\u0966", "-7:00" }, 2462b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "hi", "America/Los_Angeles", "2004-07-15T00:00:00Z", "v", "\\u0938\\u0902\\u092f\\u0941\\u0915\\u094d\\u0924 \\u0930\\u093e\\u091c\\u094d\\u092f \\u0905\\u092e\\u0930\\u093f\\u0915\\u093e (Los Angeles)", "America/Los_Angeles" }, 2463b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "hi", "America/Los_Angeles", "2004-07-15T00:00:00Z", "vvvv", "\\u0938\\u0902\\u092f\\u0941\\u0915\\u094d\\u0924 \\u0930\\u093e\\u091c\\u094d\\u092f \\u0905\\u092e\\u0930\\u093f\\u0915\\u093e (Los Angeles)", "America/Los_Angeles" }, 2464b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 2465b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "hi", "America/Argentina/Buenos_Aires", "2004-01-15T00:00:00Z", "Z", "-0300", "-3:00" }, 2466b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "hi", "America/Argentina/Buenos_Aires", "2004-01-15T00:00:00Z", "ZZZZ", "GMT-\\u0966\\u0969:\\u0966\\u0966", "-3:00" }, 2467b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "hi", "America/Argentina/Buenos_Aires", "2004-01-15T00:00:00Z", "z", "GMT-\\u0966\\u0969:\\u0966\\u0966", "-3:00" }, 2468b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "hi", "America/Argentina/Buenos_Aires", "2004-01-15T00:00:00Z", "zzzz", "GMT-\\u0966\\u0969:\\u0966\\u0966", "-3:00" }, 2469b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "hi", "America/Argentina/Buenos_Aires", "2004-07-15T00:00:00Z", "Z", "-0300", "-3:00" }, 2470b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "hi", "America/Argentina/Buenos_Aires", "2004-07-15T00:00:00Z", "ZZZZ", "GMT-\\u0966\\u0969:\\u0966\\u0966", "-3:00" }, 2471b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "hi", "America/Argentina/Buenos_Aires", "2004-07-15T00:00:00Z", "z", "GMT-\\u0966\\u0969:\\u0966\\u0966", "-3:00" }, 2472b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "hi", "America/Argentina/Buenos_Aires", "2004-07-15T00:00:00Z", "zzzz", "GMT-\\u0966\\u0969:\\u0966\\u0966", "-3:00" }, 2473b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "hi", "America/Argentina/Buenos_Aires", "2004-07-15T00:00:00Z", "v", "\\u0905\\u0930\\u094d\\u091c\\u0947\\u0928\\u094d\\u091f\\u0940\\u0928\\u093e (Buenos Aires)", "America/Buenos_Aires" }, 2474b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "hi", "America/Argentina/Buenos_Aires", "2004-07-15T00:00:00Z", "vvvv", "\\u0905\\u0930\\u094d\\u091c\\u0947\\u0928\\u094d\\u091f\\u0940\\u0928\\u093e (Buenos Aires)", "America/Buenos_Aires" }, 2475b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 2476b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "hi", "America/Buenos_Aires", "2004-01-15T00:00:00Z", "Z", "-0300", "-3:00" }, 2477b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "hi", "America/Buenos_Aires", "2004-01-15T00:00:00Z", "ZZZZ", "GMT-\\u0966\\u0969:\\u0966\\u0966", "-3:00" }, 2478b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "hi", "America/Buenos_Aires", "2004-01-15T00:00:00Z", "z", "GMT-\\u0966\\u0969:\\u0966\\u0966", "-3:00" }, 2479b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "hi", "America/Buenos_Aires", "2004-01-15T00:00:00Z", "zzzz", "GMT-\\u0966\\u0969:\\u0966\\u0966", "-3:00" }, 2480b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "hi", "America/Buenos_Aires", "2004-07-15T00:00:00Z", "Z", "-0300", "-3:00" }, 2481b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "hi", "America/Buenos_Aires", "2004-07-15T00:00:00Z", "ZZZZ", "GMT-\\u0966\\u0969:\\u0966\\u0966", "-3:00" }, 2482b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "hi", "America/Buenos_Aires", "2004-07-15T00:00:00Z", "z", "GMT-\\u0966\\u0969:\\u0966\\u0966", "-3:00" }, 2483b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "hi", "America/Buenos_Aires", "2004-07-15T00:00:00Z", "zzzz", "GMT-\\u0966\\u0969:\\u0966\\u0966", "-3:00" }, 2484b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "hi", "America/Buenos_Aires", "2004-07-15T00:00:00Z", "v", "\\u0905\\u0930\\u094d\\u091c\\u0947\\u0928\\u094d\\u091f\\u0940\\u0928\\u093e (Buenos Aires)", "America/Buenos_Aires" }, 2485b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "hi", "America/Buenos_Aires", "2004-07-15T00:00:00Z", "vvvv", "\\u0905\\u0930\\u094d\\u091c\\u0947\\u0928\\u094d\\u091f\\u0940\\u0928\\u093e (Buenos Aires)", "America/Buenos_Aires" }, 2486b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 2487b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "hi", "America/Havana", "2004-01-15T00:00:00Z", "Z", "-0500", "-5:00" }, 2488b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "hi", "America/Havana", "2004-01-15T00:00:00Z", "ZZZZ", "GMT-\\u0966\\u096b:\\u0966\\u0966", "-5:00" }, 2489b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "hi", "America/Havana", "2004-01-15T00:00:00Z", "z", "GMT-\\u0966\\u096b:\\u0966\\u0966", "-5:00" }, 2490b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "hi", "America/Havana", "2004-01-15T00:00:00Z", "zzzz", "GMT-\\u0966\\u096b:\\u0966\\u0966", "-5:00" }, 2491b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "hi", "America/Havana", "2004-07-15T00:00:00Z", "Z", "-0400", "-4:00" }, 2492b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "hi", "America/Havana", "2004-07-15T00:00:00Z", "ZZZZ", "GMT-\\u0966\\u096a:\\u0966\\u0966", "-4:00" }, 2493b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "hi", "America/Havana", "2004-07-15T00:00:00Z", "z", "GMT-\\u0966\\u096a:\\u0966\\u0966", "-4:00" }, 2494b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "hi", "America/Havana", "2004-07-15T00:00:00Z", "zzzz", "GMT-\\u0966\\u096a:\\u0966\\u0966", "-4:00" }, 2495b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "hi", "America/Havana", "2004-07-15T00:00:00Z", "v", "\\u0915\\u094d\\u092f\\u0942\\u092c\\u093e", "America/Havana" }, 2496b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "hi", "America/Havana", "2004-07-15T00:00:00Z", "vvvv", "\\u0915\\u094d\\u092f\\u0942\\u092c\\u093e", "America/Havana" }, 2497b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 2498b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "hi", "Australia/ACT", "2004-01-15T00:00:00Z", "Z", "+1100", "+11:00" }, 2499b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "hi", "Australia/ACT", "2004-01-15T00:00:00Z", "ZZZZ", "GMT+\\u0967\\u0967:\\u0966\\u0966", "+11:00" }, 2500b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "hi", "Australia/ACT", "2004-01-15T00:00:00Z", "z", "GMT+\\u0967\\u0967:\\u0966\\u0966", "+11:00" }, 2501b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "hi", "Australia/ACT", "2004-01-15T00:00:00Z", "zzzz", "GMT+\\u0967\\u0967:\\u0966\\u0966", "+11:00" }, 2502b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "hi", "Australia/ACT", "2004-07-15T00:00:00Z", "Z", "+1000", "+10:00" }, 2503b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "hi", "Australia/ACT", "2004-07-15T00:00:00Z", "ZZZZ", "GMT+\\u0967\\u0966:\\u0966\\u0966", "+10:00" }, 2504b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "hi", "Australia/ACT", "2004-07-15T00:00:00Z", "z", "GMT+\\u0967\\u0966:\\u0966\\u0966", "+10:00" }, 2505b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "hi", "Australia/ACT", "2004-07-15T00:00:00Z", "zzzz", "GMT+\\u0967\\u0966:\\u0966\\u0966", "+10:00" }, 2506b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "hi", "Australia/ACT", "2004-07-15T00:00:00Z", "v", "\\u0911\\u0938\\u094d\\u091f\\u094d\\u0930\\u0947\\u0932\\u093f\\u092f\\u093e (Sydney)", "Australia/Sydney" }, 2507b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "hi", "Australia/ACT", "2004-07-15T00:00:00Z", "vvvv", "\\u0911\\u0938\\u094d\\u091f\\u094d\\u0930\\u0947\\u0932\\u093f\\u092f\\u093e (Sydney)", "Australia/Sydney" }, 2508b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 2509b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "hi", "Australia/Sydney", "2004-01-15T00:00:00Z", "Z", "+1100", "+11:00" }, 2510b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "hi", "Australia/Sydney", "2004-01-15T00:00:00Z", "ZZZZ", "GMT+\\u0967\\u0967:\\u0966\\u0966", "+11:00" }, 2511b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "hi", "Australia/Sydney", "2004-01-15T00:00:00Z", "z", "GMT+\\u0967\\u0967:\\u0966\\u0966", "+11:00" }, 2512b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "hi", "Australia/Sydney", "2004-01-15T00:00:00Z", "zzzz", "GMT+\\u0967\\u0967:\\u0966\\u0966", "+11:00" }, 2513b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "hi", "Australia/Sydney", "2004-07-15T00:00:00Z", "Z", "+1000", "+10:00" }, 2514b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "hi", "Australia/Sydney", "2004-07-15T00:00:00Z", "ZZZZ", "GMT+\\u0967\\u0966:\\u0966\\u0966", "+10:00" }, 2515b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "hi", "Australia/Sydney", "2004-07-15T00:00:00Z", "z", "GMT+\\u0967\\u0966:\\u0966\\u0966", "+10:00" }, 2516b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "hi", "Australia/Sydney", "2004-07-15T00:00:00Z", "zzzz", "GMT+\\u0967\\u0966:\\u0966\\u0966", "+10:00" }, 2517b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "hi", "Australia/Sydney", "2004-07-15T00:00:00Z", "v", "\\u0911\\u0938\\u094d\\u091f\\u094d\\u0930\\u0947\\u0932\\u093f\\u092f\\u093e (Sydney)", "Australia/Sydney" }, 2518b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "hi", "Australia/Sydney", "2004-07-15T00:00:00Z", "vvvv", "\\u0911\\u0938\\u094d\\u091f\\u094d\\u0930\\u0947\\u0932\\u093f\\u092f\\u093e (Sydney)", "Australia/Sydney" }, 2519b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 2520b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "hi", "Europe/London", "2004-01-15T00:00:00Z", "Z", "+0000", "+0:00" }, 2521b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "hi", "Europe/London", "2004-01-15T00:00:00Z", "ZZZZ", "GMT+\\u0966\\u0966:\\u0966\\u0966", "+0:00" }, 2522b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "hi", "Europe/London", "2004-01-15T00:00:00Z", "z", "GMT+\\u0966\\u0966:\\u0966\\u0966", "+0:00" }, 2523b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "hi", "Europe/London", "2004-01-15T00:00:00Z", "zzzz", "GMT+\\u0966\\u0966:\\u0966\\u0966", "+0:00" }, 2524b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "hi", "Europe/London", "2004-07-15T00:00:00Z", "Z", "+0100", "+1:00" }, 2525b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "hi", "Europe/London", "2004-07-15T00:00:00Z", "ZZZZ", "GMT+\\u0966\\u0967:\\u0966\\u0966", "+1:00" }, 2526b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "hi", "Europe/London", "2004-07-15T00:00:00Z", "z", "GMT+\\u0966\\u0967:\\u0966\\u0966", "+1:00" }, 2527b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "hi", "Europe/London", "2004-07-15T00:00:00Z", "zzzz", "GMT+\\u0966\\u0967:\\u0966\\u0966", "+1:00" }, 2528b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "hi", "Europe/London", "2004-07-15T00:00:00Z", "v", "\\u092C\\u094D\\u0930\\u093F\\u0924\\u0928", "Europe/London" }, 2529b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "hi", "Europe/London", "2004-07-15T00:00:00Z", "vvvv", "\\u092C\\u094D\\u0930\\u093F\\u0924\\u0928", "Europe/London" }, 2530b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 2531b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "hi", "Etc/GMT+3", "2004-01-15T00:00:00Z", "Z", "-0300", "-3:00" }, 2532b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "hi", "Etc/GMT+3", "2004-01-15T00:00:00Z", "ZZZZ", "GMT-\\u0966\\u0969:\\u0966\\u0966", "-3:00" }, 2533b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "hi", "Etc/GMT+3", "2004-01-15T00:00:00Z", "z", "GMT-\\u0966\\u0969:\\u0966\\u0966", "-3:00" }, 2534b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "hi", "Etc/GMT+3", "2004-01-15T00:00:00Z", "zzzz", "GMT-\\u0966\\u0969:\\u0966\\u0966", "-3:00" }, 2535b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "hi", "Etc/GMT+3", "2004-07-15T00:00:00Z", "Z", "-0300", "-3:00" }, 2536b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "hi", "Etc/GMT+3", "2004-07-15T00:00:00Z", "ZZZZ", "GMT-\\u0966\\u0969:\\u0966\\u0966", "-3:00" }, 2537b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "hi", "Etc/GMT+3", "2004-07-15T00:00:00Z", "z", "GMT-\\u0966\\u0969:\\u0966\\u0966", "-3:00" }, 2538b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "hi", "Etc/GMT+3", "2004-07-15T00:00:00Z", "zzzz", "GMT-\\u0966\\u0969:\\u0966\\u0966", "-3:00" }, 2539b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "hi", "Etc/GMT+3", "2004-07-15T00:00:00Z", "v", "GMT-\\u0966\\u0969:\\u0966\\u0966", "-3:00" }, 2540b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "hi", "Etc/GMT+3", "2004-07-15T00:00:00Z", "vvvv", "GMT-\\u0966\\u0969:\\u0966\\u0966", "-3:00" }, 2541b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 2542b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "hi", "Asia/Calcutta", "2004-01-15T00:00:00Z", "Z", "+0530", "+5:30" }, 2543b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "hi", "Asia/Calcutta", "2004-01-15T00:00:00Z", "ZZZZ", "GMT+\\u0966\\u096B:\\u0969\\u0966", "+5:30" }, 2544b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "hi", "Asia/Calcutta", "2004-01-15T00:00:00Z", "z", "IST", "+5:30" }, 2545b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "hi", "Asia/Calcutta", "2004-01-15T00:00:00Z", "zzzz", "\\u092D\\u093E\\u0930\\u0924\\u0940\\u092F \\u0938\\u092E\\u092F", "+5:30" }, 2546b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "hi", "Asia/Calcutta", "2004-07-15T00:00:00Z", "Z", "+0530", "+5:30" }, 2547b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "hi", "Asia/Calcutta", "2004-07-15T00:00:00Z", "ZZZZ", "GMT+\\u0966\\u096B:\\u0969\\u0966", "+5:30" }, 2548b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "hi", "Asia/Calcutta", "2004-07-15T00:00:00Z", "z", "IST", "+05:30" }, 2549b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "hi", "Asia/Calcutta", "2004-07-15T00:00:00Z", "zzzz", "\\u092D\\u093E\\u0930\\u0924\\u0940\\u092F \\u0938\\u092E\\u092F", "+5:30" }, 2550b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "hi", "Asia/Calcutta", "2004-07-15T00:00:00Z", "v", "IST", "Asia/Calcutta" }, 2551b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "hi", "Asia/Calcutta", "2004-07-15T00:00:00Z", "vvvv", "\\u092D\\u093E\\u0930\\u0924\\u0940\\u092F \\u0938\\u092E\\u092F", "Asia/Calcutta" }, 2552b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 2553b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru // ========== 2554b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 2555b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "bg", "America/Los_Angeles", "2004-01-15T00:00:00Z", "Z", "-0800", "-8:00" }, 2556b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "bg", "America/Los_Angeles", "2004-01-15T00:00:00Z", "ZZZZ", "GMT-0800", "-8:00" }, 2557b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "bg", "America/Los_Angeles", "2004-01-15T00:00:00Z", "z", "GMT-0800", "America/Los_Angeles" }, 2558b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "bg", "America/Los_Angeles", "2004-01-15T00:00:00Z", "V", "PST", "America/Los_Angeles" }, 2559b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "bg", "America/Los_Angeles", "2004-01-15T00:00:00Z", "zzzz", "\\u0422\\u0438\\u0445\\u043E\\u043E\\u043A\\u0435\\u0430\\u043D\\u0441\\u043A\\u0430 \\u0447\\u0430\\u0441\\u043E\\u0432\\u0430 \\u0437\\u043E\\u043D\\u0430", "America/Los_Angeles" }, 2560b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "bg", "America/Los_Angeles", "2004-07-15T00:00:00Z", "Z", "-0700", "-7:00" }, 2561b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "bg", "America/Los_Angeles", "2004-07-15T00:00:00Z", "ZZZZ", "GMT-0700", "-7:00" }, 2562b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "bg", "America/Los_Angeles", "2004-07-15T00:00:00Z", "z", "GMT-0700", "America/Los_Angeles" }, 2563b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "bg", "America/Los_Angeles", "2004-07-15T00:00:00Z", "V", "PDT", "America/Los_Angeles" }, 2564b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "bg", "America/Los_Angeles", "2004-07-15T00:00:00Z", "zzzz", "\\u0422\\u0438\\u0445\\u043E\\u043E\\u043A\\u0435\\u0430\\u043D\\u0441\\u043A\\u0430 \\u043B\\u044F\\u0442\\u043D\\u0430 \\u0447\\u0430\\u0441\\u043E\\u0432\\u0430 \\u0437\\u043E\\u043D\\u0430", "America/Los_Angeles" }, 2565b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru // icu bg.txt has exemplar city for this time zone 2566b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "bg", "America/Los_Angeles", "2004-07-15T00:00:00Z", "v", "\\u0421\\u0410\\u0429 (\\u041b\\u043e\\u0441 \\u0410\\u043d\\u0436\\u0435\\u043b\\u0438\\u0441)", "America/Los_Angeles" }, 2567b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "bg", "America/Los_Angeles", "2004-07-15T00:00:00Z", "vvvv", "\\u0421\\u0410\\u0429 (\\u041b\\u043e\\u0441 \\u0410\\u043d\\u0436\\u0435\\u043b\\u0438\\u0441)", "America/Los_Angeles" }, 2568b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "bg", "America/Los_Angeles", "2004-07-15T00:00:00Z", "VVVV", "\\u0421\\u0410\\u0429 (\\u041b\\u043e\\u0441 \\u0410\\u043d\\u0436\\u0435\\u043b\\u0438\\u0441)", "America/Los_Angeles" }, 2569b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 2570b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "bg", "America/Argentina/Buenos_Aires", "2004-01-15T00:00:00Z", "Z", "-0300", "-3:00" }, 2571b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "bg", "America/Argentina/Buenos_Aires", "2004-01-15T00:00:00Z", "ZZZZ", "GMT-0300", "-3:00" }, 2572b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "bg", "America/Argentina/Buenos_Aires", "2004-01-15T00:00:00Z", "z", "GMT-0300", "-3:00" }, 2573b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "bg", "America/Argentina/Buenos_Aires", "2004-01-15T00:00:00Z", "zzzz", "GMT-0300", "-3:00" }, 2574b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "bg", "America/Argentina/Buenos_Aires", "2004-07-15T00:00:00Z", "Z", "-0300", "-3:00" }, 2575b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "bg", "America/Argentina/Buenos_Aires", "2004-07-15T00:00:00Z", "ZZZZ", "GMT-0300", "-3:00" }, 2576b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "bg", "America/Argentina/Buenos_Aires", "2004-07-15T00:00:00Z", "z", "GMT-0300", "-3:00" }, 2577b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "bg", "America/Argentina/Buenos_Aires", "2004-07-15T00:00:00Z", "zzzz", "GMT-0300", "-3:00" }, 2578b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "bg", "America/Argentina/Buenos_Aires", "2004-07-15T00:00:00Z", "v", "\\u0410\\u0440\\u0436\\u0435\\u043d\\u0442\\u0438\\u043d\\u0430 (\\u0411\\u0443\\u0435\\u043D\\u043E\\u0441 \\u0410\\u0439\\u0440\\u0435\\u0441)", "America/Buenos_Aires" }, 2579b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "bg", "America/Argentina/Buenos_Aires", "2004-07-15T00:00:00Z", "vvvv", "\\u0410\\u0440\\u0436\\u0435\\u043d\\u0442\\u0438\\u043d\\u0430 (\\u0411\\u0443\\u0435\\u043D\\u043E\\u0441 \\u0410\\u0439\\u0440\\u0435\\u0441)", "America/Buenos_Aires" }, 2580b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 2581b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "bg", "America/Buenos_Aires", "2004-01-15T00:00:00Z", "Z", "-0300", "-3:00" }, 2582b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "bg", "America/Buenos_Aires", "2004-01-15T00:00:00Z", "ZZZZ", "GMT-0300", "-3:00" }, 2583b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "bg", "America/Buenos_Aires", "2004-01-15T00:00:00Z", "z", "GMT-0300", "-3:00" }, 2584b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "bg", "America/Buenos_Aires", "2004-01-15T00:00:00Z", "zzzz", "GMT-0300", "-3:00" }, 2585b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "bg", "America/Buenos_Aires", "2004-07-15T00:00:00Z", "Z", "-0300", "-3:00" }, 2586b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "bg", "America/Buenos_Aires", "2004-07-15T00:00:00Z", "ZZZZ", "GMT-0300", "-3:00" }, 2587b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "bg", "America/Buenos_Aires", "2004-07-15T00:00:00Z", "z", "GMT-0300", "-3:00" }, 2588b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "bg", "America/Buenos_Aires", "2004-07-15T00:00:00Z", "zzzz", "GMT-0300", "-3:00" }, 2589b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru // icu bg.txt does not have info for this time zone 2590b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "bg", "America/Buenos_Aires", "2004-07-15T00:00:00Z", "v", "\\u0410\\u0440\\u0436\\u0435\\u043d\\u0442\\u0438\\u043d\\u0430 (\\u0411\\u0443\\u0435\\u043D\\u043E\\u0441 \\u0410\\u0439\\u0440\\u0435\\u0441)", "America/Buenos_Aires" }, 2591b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "bg", "America/Buenos_Aires", "2004-07-15T00:00:00Z", "vvvv", "\\u0410\\u0440\\u0436\\u0435\\u043d\\u0442\\u0438\\u043d\\u0430 (\\u0411\\u0443\\u0435\\u043D\\u043E\\u0441 \\u0410\\u0439\\u0440\\u0435\\u0441)", "America/Buenos_Aires" }, 2592b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 2593b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "bg", "America/Havana", "2004-01-15T00:00:00Z", "Z", "-0500", "-5:00" }, 2594b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "bg", "America/Havana", "2004-01-15T00:00:00Z", "ZZZZ", "GMT-0500", "-5:00" }, 2595b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "bg", "America/Havana", "2004-01-15T00:00:00Z", "z", "GMT-0500", "-5:00" }, 2596b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "bg", "America/Havana", "2004-01-15T00:00:00Z", "zzzz", "GMT-0500", "-5:00" }, 2597b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "bg", "America/Havana", "2004-07-15T00:00:00Z", "Z", "-0400", "-4:00" }, 2598b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "bg", "America/Havana", "2004-07-15T00:00:00Z", "ZZZZ", "GMT-0400", "-4:00" }, 2599b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "bg", "America/Havana", "2004-07-15T00:00:00Z", "z", "GMT-0400", "-4:00" }, 2600b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "bg", "America/Havana", "2004-07-15T00:00:00Z", "zzzz", "GMT-0400", "-4:00" }, 2601b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "bg", "America/Havana", "2004-07-15T00:00:00Z", "v", "\\u041a\\u0443\\u0431\\u0430", "America/Havana" }, 2602b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "bg", "America/Havana", "2004-07-15T00:00:00Z", "vvvv", "\\u041a\\u0443\\u0431\\u0430", "America/Havana" }, 2603b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 2604b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "bg", "Australia/ACT", "2004-01-15T00:00:00Z", "Z", "+1100", "+11:00" }, 2605b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "bg", "Australia/ACT", "2004-01-15T00:00:00Z", "ZZZZ", "GMT+1100", "+11:00" }, 2606b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "bg", "Australia/ACT", "2004-01-15T00:00:00Z", "z", "GMT+1100", "+11:00" }, 2607b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "bg", "Australia/ACT", "2004-01-15T00:00:00Z", "zzzz", "GMT+1100", "+11:00" }, 2608b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "bg", "Australia/ACT", "2004-07-15T00:00:00Z", "Z", "+1000", "+10:00" }, 2609b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "bg", "Australia/ACT", "2004-07-15T00:00:00Z", "ZZZZ", "GMT+1000", "+10:00" }, 2610b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "bg", "Australia/ACT", "2004-07-15T00:00:00Z", "z", "GMT+1000", "+10:00" }, 2611b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "bg", "Australia/ACT", "2004-07-15T00:00:00Z", "zzzz", "GMT+1000", "+10:00" }, 2612b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "bg", "Australia/ACT", "2004-07-15T00:00:00Z", "v", "\\u0410\\u0432\\u0441\\u0442\\u0440\\u0430\\u043b\\u0438\\u044f (\\u0421\\u0438\\u0434\\u043D\\u0438)", "Australia/Sydney" }, 2613b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "bg", "Australia/ACT", "2004-07-15T00:00:00Z", "vvvv", "\\u0410\\u0432\\u0441\\u0442\\u0440\\u0430\\u043b\\u0438\\u044f (\\u0421\\u0438\\u0434\\u043D\\u0438)", "Australia/Sydney" }, 2614b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 2615b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "bg", "Australia/Sydney", "2004-01-15T00:00:00Z", "Z", "+1100", "+11:00" }, 2616b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "bg", "Australia/Sydney", "2004-01-15T00:00:00Z", "ZZZZ", "GMT+1100", "+11:00" }, 2617b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "bg", "Australia/Sydney", "2004-01-15T00:00:00Z", "z", "GMT+1100", "+11:00" }, 2618b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "bg", "Australia/Sydney", "2004-01-15T00:00:00Z", "zzzz", "GMT+1100", "+11:00" }, 2619b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "bg", "Australia/Sydney", "2004-07-15T00:00:00Z", "Z", "+1000", "+10:00" }, 2620b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "bg", "Australia/Sydney", "2004-07-15T00:00:00Z", "ZZZZ", "GMT+1000", "+10:00" }, 2621b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "bg", "Australia/Sydney", "2004-07-15T00:00:00Z", "z", "GMT+1000", "+10:00" }, 2622b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "bg", "Australia/Sydney", "2004-07-15T00:00:00Z", "zzzz", "GMT+1000", "+10:00" }, 2623b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "bg", "Australia/Sydney", "2004-07-15T00:00:00Z", "v", "\\u0410\\u0432\\u0441\\u0442\\u0440\\u0430\\u043b\\u0438\\u044f (\\u0421\\u0438\\u0434\\u043D\\u0438)", "Australia/Sydney" }, 2624b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "bg", "Australia/Sydney", "2004-07-15T00:00:00Z", "vvvv", "\\u0410\\u0432\\u0441\\u0442\\u0440\\u0430\\u043b\\u0438\\u044f (\\u0421\\u0438\\u0434\\u043D\\u0438)", "Australia/Sydney" }, 2625b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 2626b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "bg", "Europe/London", "2004-01-15T00:00:00Z", "Z", "+0000", "+0:00" }, 2627b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "bg", "Europe/London", "2004-01-15T00:00:00Z", "ZZZZ", "GMT+0000", "+0:00" }, 2628b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "bg", "Europe/London", "2004-01-15T00:00:00Z", "z", "GMT+0000", "+0:00" }, 2629b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "bg", "Europe/London", "2004-01-15T00:00:00Z", "zzzz", "\\u0427\\u0430\\u0441\\u043E\\u0432\\u0430 \\u0437\\u043E\\u043D\\u0430 \\u0413\\u0440\\u0438\\u043D\\u0443\\u0438\\u0447", "+0:00" }, 2630b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "bg", "Europe/London", "2004-07-15T00:00:00Z", "Z", "+0100", "+1:00" }, 2631b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "bg", "Europe/London", "2004-07-15T00:00:00Z", "ZZZZ", "GMT+0100", "+1:00" }, 2632b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "bg", "Europe/London", "2004-07-15T00:00:00Z", "z", "GMT+0100", "+1:00" }, 2633b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "bg", "Europe/London", "2004-07-15T00:00:00Z", "zzzz", "GMT+0100", "+1:00" }, 2634b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "bg", "Europe/London", "2004-07-15T00:00:00Z", "v", "\\u041e\\u0431\\u0435\\u0434\\u0438\\u043d\\u0435\\u043d\\u043e \\u043a\\u0440\\u0430\\u043b\\u0441\\u0442\\u0432\\u043e", "Europe/London" }, 2635b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "bg", "Europe/London", "2004-07-15T00:00:00Z", "vvvv", "\\u041e\\u0431\\u0435\\u0434\\u0438\\u043d\\u0435\\u043d\\u043e \\u043a\\u0440\\u0430\\u043b\\u0441\\u0442\\u0432\\u043e", "Europe/London" }, 2636b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 2637b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "bg", "Etc/GMT+3", "2004-01-15T00:00:00Z", "Z", "-0300", "-3:00" }, 2638b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "bg", "Etc/GMT+3", "2004-01-15T00:00:00Z", "ZZZZ", "GMT-0300", "-3:00" }, 2639b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "bg", "Etc/GMT+3", "2004-01-15T00:00:00Z", "z", "GMT-0300", "-3:00" }, 2640b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "bg", "Etc/GMT+3", "2004-01-15T00:00:00Z", "zzzz", "GMT-0300", "-3:00" }, 2641b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "bg", "Etc/GMT+3", "2004-07-15T00:00:00Z", "Z", "-0300", "-3:00" }, 2642b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "bg", "Etc/GMT+3", "2004-07-15T00:00:00Z", "ZZZZ", "GMT-0300", "-3:00" }, 2643b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "bg", "Etc/GMT+3", "2004-07-15T00:00:00Z", "z", "GMT-0300", "-3:00" }, 2644b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "bg", "Etc/GMT+3", "2004-07-15T00:00:00Z", "zzzz", "GMT-0300", "-3:00" }, 2645b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "bg", "Etc/GMT+3", "2004-07-15T00:00:00Z", "v", "GMT-0300", "-3:00" }, 2646b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "bg", "Etc/GMT+3", "2004-07-15T00:00:00Z", "vvvv", "GMT-0300", "-3:00" }, 2647b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 2648b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru // JB#5150 2649b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "bg", "Asia/Calcutta", "2004-01-15T00:00:00Z", "Z", "+0530", "+5:30" }, 2650b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "bg", "Asia/Calcutta", "2004-01-15T00:00:00Z", "ZZZZ", "GMT+0530", "+5:30" }, 2651b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "bg", "Asia/Calcutta", "2004-01-15T00:00:00Z", "z", "GMT+0530", "+5:30" }, 2652b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "bg", "Asia/Calcutta", "2004-01-15T00:00:00Z", "zzzz", "GMT+0530", "+5:30" }, 2653b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "bg", "Asia/Calcutta", "2004-07-15T00:00:00Z", "Z", "+0530", "+5:30" }, 2654b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "bg", "Asia/Calcutta", "2004-07-15T00:00:00Z", "ZZZZ", "GMT+0530", "+5:30" }, 2655b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "bg", "Asia/Calcutta", "2004-07-15T00:00:00Z", "z", "GMT+0530", "+05:30" }, 2656b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "bg", "Asia/Calcutta", "2004-07-15T00:00:00Z", "zzzz", "GMT+0530", "+5:30" }, 2657b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "bg", "Asia/Calcutta", "2004-07-15T00:00:00Z", "v", "\\u0418\\u043D\\u0434\\u0438\\u044F", "Asia/Calcutta" }, 2658b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "bg", "Asia/Calcutta", "2004-07-15T00:00:00Z", "vvvv", "\\u0418\\u043D\\u0434\\u0438\\u044F", "Asia/Calcutta" }, 2659b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 2660b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru // ========== 2661b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 2662b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "ja", "America/Los_Angeles", "2004-01-15T00:00:00Z", "Z", "-0800", "-8:00" }, 2663b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "ja", "America/Los_Angeles", "2004-01-15T00:00:00Z", "ZZZZ", "GMT-0800", "-8:00" }, 2664b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "ja", "America/Los_Angeles", "2004-01-15T00:00:00Z", "z", "GMT-0800", "America/Los_Angeles" }, 2665b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "ja", "America/Los_Angeles", "2004-01-15T00:00:00Z", "V", "PST", "America/Los_Angeles" }, 2666b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "ja", "America/Los_Angeles", "2004-01-15T00:00:00Z", "zzzz", "\\u592a\\u5e73\\u6d0b\\u6a19\\u6e96\\u6642", "America/Los_Angeles" }, 2667b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "ja", "America/Los_Angeles", "2004-07-15T00:00:00Z", "Z", "-0700", "-7:00" }, 2668b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "ja", "America/Los_Angeles", "2004-07-15T00:00:00Z", "ZZZZ", "GMT-0700", "-7:00" }, 2669b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "ja", "America/Los_Angeles", "2004-07-15T00:00:00Z", "z", "GMT-0700", "America/Los_Angeles" }, 2670b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "ja", "America/Los_Angeles", "2004-07-15T00:00:00Z", "V", "PDT", "America/Los_Angeles" }, 2671b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "ja", "America/Los_Angeles", "2004-07-15T00:00:00Z", "zzzz", "\\u592a\\u5e73\\u6d0b\\u590f\\u6642\\u9593", "America/Los_Angeles" }, 2672b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru // icu ja.txt has exemplar city for this time zone 2673b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "ja", "America/Los_Angeles", "2004-07-15T00:00:00Z", "v", "\\u30A2\\u30E1\\u30EA\\u30AB\\u5408\\u8846\\u56FD (\\u30ed\\u30b5\\u30f3\\u30bc\\u30eb\\u30b9)", "America/Los_Angeles" }, 2674b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "ja", "America/Los_Angeles", "2004-07-15T00:00:00Z", "vvvv", "\\u30A2\\u30E1\\u30EA\\u30AB\\u5408\\u8846\\u56FD (\\u30ed\\u30b5\\u30f3\\u30bc\\u30eb\\u30b9)", "America/Los_Angeles" }, 2675b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "ja", "America/Los_Angeles", "2004-07-15T00:00:00Z", "VVVV", "\\u30A2\\u30E1\\u30EA\\u30AB\\u5408\\u8846\\u56FD (\\u30ed\\u30b5\\u30f3\\u30bc\\u30eb\\u30b9)", "America/Los_Angeles" }, 2676b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 2677b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "ja", "America/Argentina/Buenos_Aires", "2004-01-15T00:00:00Z", "Z", "-0300", "-3:00" }, 2678b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "ja", "America/Argentina/Buenos_Aires", "2004-01-15T00:00:00Z", "ZZZZ", "GMT-0300", "-3:00" }, 2679b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "ja", "America/Argentina/Buenos_Aires", "2004-01-15T00:00:00Z", "z", "GMT-0300", "-3:00" }, 2680b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "ja", "America/Argentina/Buenos_Aires", "2004-01-15T00:00:00Z", "zzzz", "GMT-0300", "-3:00" }, 2681b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "ja", "America/Argentina/Buenos_Aires", "2004-07-15T00:00:00Z", "Z", "-0300", "-3:00" }, 2682b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "ja", "America/Argentina/Buenos_Aires", "2004-07-15T00:00:00Z", "ZZZZ", "GMT-0300", "-3:00" }, 2683b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "ja", "America/Argentina/Buenos_Aires", "2004-07-15T00:00:00Z", "z", "GMT-0300", "-3:00" }, 2684b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "ja", "America/Argentina/Buenos_Aires", "2004-07-15T00:00:00Z", "zzzz", "GMT-0300", "-3:00" }, 2685b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru // icu ja.txt does not have info for this time zone 2686b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "ja", "America/Argentina/Buenos_Aires", "2004-07-15T00:00:00Z", "v", "\\u30a2\\u30eb\\u30bc\\u30f3\\u30c1\\u30f3 (\\u30A2\\u30E1\\u30EA\\u30AB/\\u30D6\\u30A8\\u30CE\\u30B9\\u30A2\\u30A4\\u30EC\\u30B9)", "America/Buenos_Aires" }, 2687b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "ja", "America/Argentina/Buenos_Aires", "2004-07-15T00:00:00Z", "vvvv", "\\u30a2\\u30eb\\u30bc\\u30f3\\u30c1\\u30f3 (\\u30A2\\u30E1\\u30EA\\u30AB/\\u30D6\\u30A8\\u30CE\\u30B9\\u30A2\\u30A4\\u30EC\\u30B9)", "America/Buenos_Aires" }, 2688b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 2689b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "ja", "America/Buenos_Aires", "2004-01-15T00:00:00Z", "Z", "-0300", "-3:00" }, 2690b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "ja", "America/Buenos_Aires", "2004-01-15T00:00:00Z", "ZZZZ", "GMT-0300", "-3:00" }, 2691b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "ja", "America/Buenos_Aires", "2004-01-15T00:00:00Z", "z", "GMT-0300", "-3:00" }, 2692b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "ja", "America/Buenos_Aires", "2004-01-15T00:00:00Z", "zzzz", "GMT-0300", "-3:00" }, 2693b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "ja", "America/Buenos_Aires", "2004-07-15T00:00:00Z", "Z", "-0300", "-3:00" }, 2694b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "ja", "America/Buenos_Aires", "2004-07-15T00:00:00Z", "ZZZZ", "GMT-0300", "-3:00" }, 2695b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "ja", "America/Buenos_Aires", "2004-07-15T00:00:00Z", "z", "GMT-0300", "-3:00" }, 2696b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "ja", "America/Buenos_Aires", "2004-07-15T00:00:00Z", "zzzz", "GMT-0300", "-3:00" }, 2697b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru // icu ja.txt does not have info for this time zone 2698b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "ja", "America/Buenos_Aires", "2004-07-15T00:00:00Z", "v", "\\u30a2\\u30eb\\u30bc\\u30f3\\u30c1\\u30f3 (\\u30A2\\u30E1\\u30EA\\u30AB/\\u30D6\\u30A8\\u30CE\\u30B9\\u30A2\\u30A4\\u30EC\\u30B9)", "America/Buenos_Aires" }, 2699b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "ja", "America/Buenos_Aires", "2004-07-15T00:00:00Z", "vvvv", "\\u30a2\\u30eb\\u30bc\\u30f3\\u30c1\\u30f3 (\\u30A2\\u30E1\\u30EA\\u30AB/\\u30D6\\u30A8\\u30CE\\u30B9\\u30A2\\u30A4\\u30EC\\u30B9)", "America/Buenos_Aires" }, 2700b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 2701b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "ja", "America/Havana", "2004-01-15T00:00:00Z", "Z", "-0500", "-5:00" }, 2702b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "ja", "America/Havana", "2004-01-15T00:00:00Z", "ZZZZ", "GMT-0500", "-5:00" }, 2703b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "ja", "America/Havana", "2004-01-15T00:00:00Z", "z", "GMT-0500", "-5:00" }, 2704b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "ja", "America/Havana", "2004-01-15T00:00:00Z", "zzzz", "GMT-0500", "-5:00" }, 2705b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "ja", "America/Havana", "2004-07-15T00:00:00Z", "Z", "-0400", "-4:00" }, 2706b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "ja", "America/Havana", "2004-07-15T00:00:00Z", "ZZZZ", "GMT-0400", "-4:00" }, 2707b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "ja", "America/Havana", "2004-07-15T00:00:00Z", "z", "GMT-0400", "-4:00" }, 2708b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "ja", "America/Havana", "2004-07-15T00:00:00Z", "zzzz", "GMT-0400", "-4:00" }, 2709b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "ja", "America/Havana", "2004-07-15T00:00:00Z", "v", "\\u30ad\\u30e5\\u30fc\\u30d0\\u6642\\u9593", "America/Havana" }, 2710b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "ja", "America/Havana", "2004-07-15T00:00:00Z", "vvvv", "\\u30ad\\u30e5\\u30fc\\u30d0\\u6642\\u9593", "America/Havana" }, 2711b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 2712b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "ja", "Australia/ACT", "2004-01-15T00:00:00Z", "Z", "+1100", "+11:00" }, 2713b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "ja", "Australia/ACT", "2004-01-15T00:00:00Z", "ZZZZ", "GMT+1100", "+11:00" }, 2714b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "ja", "Australia/ACT", "2004-01-15T00:00:00Z", "z", "GMT+1100", "+11:00" }, 2715b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "ja", "Australia/ACT", "2004-01-15T00:00:00Z", "zzzz", "GMT+1100", "+11:00" }, 2716b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "ja", "Australia/ACT", "2004-07-15T00:00:00Z", "Z", "+1000", "+10:00" }, 2717b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "ja", "Australia/ACT", "2004-07-15T00:00:00Z", "ZZZZ", "GMT+1000", "+10:00" }, 2718b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "ja", "Australia/ACT", "2004-07-15T00:00:00Z", "z", "GMT+1000", "+10:00" }, 2719b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "ja", "Australia/ACT", "2004-07-15T00:00:00Z", "zzzz", "GMT+1000", "+10:00" }, 2720b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru // icu ja.txt does not have info for this time zone 2721b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "ja", "Australia/ACT", "2004-07-15T00:00:00Z", "v", "\\u30aa\\u30fc\\u30b9\\u30c8\\u30e9\\u30ea\\u30a2 (\\u30AA\\u30FC\\u30B9\\u30C8\\u30E9\\u30EA\\u30A2/\\u30B7\\u30C9\\u30CB\\u30FC)", "Australia/Sydney" }, 2722b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "ja", "Australia/ACT", "2004-07-15T00:00:00Z", "vvvv", "\\u30aa\\u30fc\\u30b9\\u30c8\\u30e9\\u30ea\\u30a2 (\\u30AA\\u30FC\\u30B9\\u30C8\\u30E9\\u30EA\\u30A2/\\u30B7\\u30C9\\u30CB\\u30FC)", "Australia/Sydney" }, 2723b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 2724b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "ja", "Australia/Sydney", "2004-01-15T00:00:00Z", "Z", "+1100", "+11:00" }, 2725b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "ja", "Australia/Sydney", "2004-01-15T00:00:00Z", "ZZZZ", "GMT+1100", "+11:00" }, 2726b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "ja", "Australia/Sydney", "2004-01-15T00:00:00Z", "z", "GMT+1100", "+11:00" }, 2727b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "ja", "Australia/Sydney", "2004-01-15T00:00:00Z", "zzzz", "GMT+1100", "+11:00" }, 2728b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "ja", "Australia/Sydney", "2004-07-15T00:00:00Z", "Z", "+1000", "+10:00" }, 2729b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "ja", "Australia/Sydney", "2004-07-15T00:00:00Z", "ZZZZ", "GMT+1000", "+10:00" }, 2730b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "ja", "Australia/Sydney", "2004-07-15T00:00:00Z", "z", "GMT+1000", "+10:00" }, 2731b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "ja", "Australia/Sydney", "2004-07-15T00:00:00Z", "zzzz", "GMT+1000", "+10:00" }, 2732b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "ja", "Australia/Sydney", "2004-07-15T00:00:00Z", "v", "\\u30aa\\u30fc\\u30b9\\u30c8\\u30e9\\u30ea\\u30a2 (\\u30AA\\u30FC\\u30B9\\u30C8\\u30E9\\u30EA\\u30A2/\\u30B7\\u30C9\\u30CB\\u30FC)", "Australia/Sydney" }, 2733b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "ja", "Australia/Sydney", "2004-07-15T00:00:00Z", "vvvv", "\\u30aa\\u30fc\\u30b9\\u30c8\\u30e9\\u30ea\\u30a2 (\\u30AA\\u30FC\\u30B9\\u30C8\\u30E9\\u30EA\\u30A2/\\u30B7\\u30C9\\u30CB\\u30FC)", "Australia/Sydney" }, 2734b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 2735b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "ja", "Europe/London", "2004-01-15T00:00:00Z", "Z", "+0000", "+0:00" }, 2736b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "ja", "Europe/London", "2004-01-15T00:00:00Z", "ZZZZ", "GMT+0000", "+0:00" }, 2737b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "ja", "Europe/London", "2004-01-15T00:00:00Z", "z", "GMT+0000", "+0:00" }, 2738b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "ja", "Europe/London", "2004-01-15T00:00:00Z", "V", "GMT", "+0:00" }, 2739b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "ja", "Europe/London", "2004-01-15T00:00:00Z", "zzzz", "\\u30B0\\u30EA\\u30CB\\u30C3\\u30B8\\u6A19\\u6E96\\u6642", "+0:00" }, 2740b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "ja", "Europe/London", "2004-07-15T00:00:00Z", "Z", "+0100", "+1:00" }, 2741b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "ja", "Europe/London", "2004-07-15T00:00:00Z", "ZZZZ", "GMT+0100", "+1:00" }, 2742b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "ja", "Europe/London", "2004-07-15T00:00:00Z", "z", "GMT+0100", "+1:00" }, 2743b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "ja", "Europe/London", "2004-07-15T00:00:00Z", "V", "GMT+0100", "+1:00" }, 2744b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "ja", "Europe/London", "2004-07-15T00:00:00Z", "zzzz", "GMT+0100", "+1:00" }, 2745b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "ja", "Europe/London", "2004-07-15T00:00:00Z", "v", "\\u30a4\\u30ae\\u30ea\\u30b9\\u6642\\u9593", "Europe/London" }, 2746b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "ja", "Europe/London", "2004-07-15T00:00:00Z", "vvvv", "\\u30a4\\u30ae\\u30ea\\u30b9\\u6642\\u9593", "Europe/London" }, 2747b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "ja", "Europe/London", "2004-07-15T00:00:00Z", "VVVV", "\\u30a4\\u30ae\\u30ea\\u30b9\\u6642\\u9593", "Europe/London" }, 2748b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 2749b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "ja", "Etc/GMT+3", "2004-01-15T00:00:00Z", "Z", "-0300", "-3:00" }, 2750b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "ja", "Etc/GMT+3", "2004-01-15T00:00:00Z", "ZZZZ", "GMT-0300", "-3:00" }, 2751b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "ja", "Etc/GMT+3", "2004-01-15T00:00:00Z", "z", "GMT-0300", "-3:00" }, 2752b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "ja", "Etc/GMT+3", "2004-01-15T00:00:00Z", "zzzz", "GMT-0300", "-3:00" }, 2753b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "ja", "Etc/GMT+3", "2004-07-15T00:00:00Z", "Z", "-0300", "-3:00" }, 2754b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "ja", "Etc/GMT+3", "2004-07-15T00:00:00Z", "ZZZZ", "GMT-0300", "-3:00" }, 2755b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "ja", "Etc/GMT+3", "2004-07-15T00:00:00Z", "z", "GMT-0300", "-3:00" }, 2756b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "ja", "Etc/GMT+3", "2004-07-15T00:00:00Z", "zzzz", "GMT-0300", "-3:00" }, 2757b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "ja", "Etc/GMT+3", "2004-07-15T00:00:00Z", "v", "GMT-0300", "-3:00" }, 2758b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "ja", "Etc/GMT+3", "2004-07-15T00:00:00Z", "vvvv", "GMT-0300", "-3:00" }, 2759b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 2760b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru // JB#5150 2761b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "ja", "Asia/Calcutta", "2004-01-15T00:00:00Z", "Z", "+0530", "+5:30" }, 2762b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "ja", "Asia/Calcutta", "2004-01-15T00:00:00Z", "ZZZZ", "GMT+0530", "+5:30" }, 2763b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "ja", "Asia/Calcutta", "2004-01-15T00:00:00Z", "z", "GMT+0530", "+5:30" }, 2764b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "ja", "Asia/Calcutta", "2004-01-15T00:00:00Z", "zzzz", "GMT+0530", "+5:30" }, 2765b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "ja", "Asia/Calcutta", "2004-07-15T00:00:00Z", "Z", "+0530", "+5:30" }, 2766b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "ja", "Asia/Calcutta", "2004-07-15T00:00:00Z", "ZZZZ", "GMT+0530", "+5:30" }, 2767b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "ja", "Asia/Calcutta", "2004-07-15T00:00:00Z", "z", "GMT+0530", "+05:30" }, 2768b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "ja", "Asia/Calcutta", "2004-07-15T00:00:00Z", "zzzz", "GMT+0530", "+5:30" }, 2769b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "ja", "Asia/Calcutta", "2004-07-15T00:00:00Z", "v", "\\u30A4\\u30F3\\u30C9\\u6642\\u9593", "Asia/Calcutta" }, 2770b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "ja", "Asia/Calcutta", "2004-07-15T00:00:00Z", "vvvv", "\\u30A4\\u30F3\\u30C9\\u6642\\u9593", "Asia/Calcutta" }, 2771b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 2772b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru // ========== 2773b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 2774b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "as", "America/Los_Angeles", "2004-01-15T00:00:00Z", "Z", "-0800", "-8:00" }, 2775b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "as", "America/Los_Angeles", "2004-01-15T00:00:00Z", "ZZZZ", "GMT-08:00", "-8:00" }, 2776b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "as", "America/Los_Angeles", "2004-01-15T00:00:00Z", "z", "GMT-08:00", "-8:00" }, 2777b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "as", "America/Los_Angeles", "2004-01-15T00:00:00Z", "zzzz", "GMT-08:00", "-8:00" }, 2778b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "as", "America/Los_Angeles", "2004-07-15T00:00:00Z", "Z", "-0700", "-7:00" }, 2779b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "as", "America/Los_Angeles", "2004-07-15T00:00:00Z", "ZZZZ", "GMT-07:00", "-7:00" }, 2780b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "as", "America/Los_Angeles", "2004-07-15T00:00:00Z", "z", "GMT-07:00", "-7:00" }, 2781b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "as", "America/Los_Angeles", "2004-07-15T00:00:00Z", "zzzz", "GMT-07:00", "-7:00" }, 2782b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "as", "America/Los_Angeles", "2004-07-15T00:00:00Z", "v", "US (Los Angeles)", "America/Los_Angeles" }, 2783b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "as", "America/Los_Angeles", "2004-07-15T00:00:00Z", "vvvv", "US (Los Angeles)", "America/Los_Angeles" }, 2784b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 2785b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "as", "America/Argentina/Buenos_Aires", "2004-01-15T00:00:00Z", "Z", "-0300", "-3:00" }, 2786b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "as", "America/Argentina/Buenos_Aires", "2004-01-15T00:00:00Z", "ZZZZ", "GMT-03:00", "-3:00" }, 2787b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "as", "America/Argentina/Buenos_Aires", "2004-01-15T00:00:00Z", "z", "GMT-03:00", "-3:00" }, 2788b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "as", "America/Argentina/Buenos_Aires", "2004-01-15T00:00:00Z", "zzzz", "GMT-03:00", "-3:00" }, 2789b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "as", "America/Argentina/Buenos_Aires", "2004-07-15T00:00:00Z", "Z", "-0300", "-3:00" }, 2790b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "as", "America/Argentina/Buenos_Aires", "2004-07-15T00:00:00Z", "ZZZZ", "GMT-03:00", "-3:00" }, 2791b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "as", "America/Argentina/Buenos_Aires", "2004-07-15T00:00:00Z", "z", "GMT-03:00", "-3:00" }, 2792b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "as", "America/Argentina/Buenos_Aires", "2004-07-15T00:00:00Z", "zzzz", "GMT-03:00", "-3:00" }, 2793b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "as", "America/Argentina/Buenos_Aires", "2004-07-15T00:00:00Z", "v", "AR (Buenos Aires)", "America/Buenos_Aires" }, 2794b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "as", "America/Argentina/Buenos_Aires", "2004-07-15T00:00:00Z", "vvvv", "AR (Buenos Aires)", "America/Buenos_Aires" }, 2795b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 2796b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "as", "America/Buenos_Aires", "2004-01-15T00:00:00Z", "Z", "-0300", "-3:00" }, 2797b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "as", "America/Buenos_Aires", "2004-01-15T00:00:00Z", "ZZZZ", "GMT-03:00", "-3:00" }, 2798b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "as", "America/Buenos_Aires", "2004-01-15T00:00:00Z", "z", "GMT-03:00", "-3:00" }, 2799b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "as", "America/Buenos_Aires", "2004-01-15T00:00:00Z", "zzzz", "GMT-03:00", "-3:00" }, 2800b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "as", "America/Buenos_Aires", "2004-07-15T00:00:00Z", "Z", "-0300", "-3:00" }, 2801b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "as", "America/Buenos_Aires", "2004-07-15T00:00:00Z", "ZZZZ", "GMT-03:00", "-3:00" }, 2802b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "as", "America/Buenos_Aires", "2004-07-15T00:00:00Z", "z", "GMT-03:00", "-3:00" }, 2803b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "as", "America/Buenos_Aires", "2004-07-15T00:00:00Z", "zzzz", "GMT-03:00", "-3:00" }, 2804b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "as", "America/Buenos_Aires", "2004-07-15T00:00:00Z", "v", "AR (Buenos Aires)", "America/Buenos_Aires" }, 2805b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "as", "America/Buenos_Aires", "2004-07-15T00:00:00Z", "vvvv", "AR (Buenos Aires)", "America/Buenos_Aires" }, 2806b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 2807b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "as", "America/Havana", "2004-01-15T00:00:00Z", "Z", "-0500", "-5:00" }, 2808b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "as", "America/Havana", "2004-01-15T00:00:00Z", "ZZZZ", "GMT-05:00", "-5:00" }, 2809b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "as", "America/Havana", "2004-01-15T00:00:00Z", "z", "GMT-05:00", "-5:00" }, 2810b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "as", "America/Havana", "2004-01-15T00:00:00Z", "zzzz", "GMT-05:00", "-5:00" }, 2811b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "as", "America/Havana", "2004-07-15T00:00:00Z", "Z", "-0400", "-4:00" }, 2812b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "as", "America/Havana", "2004-07-15T00:00:00Z", "ZZZZ", "GMT-04:00", "-4:00" }, 2813b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "as", "America/Havana", "2004-07-15T00:00:00Z", "z", "GMT-04:00", "-4:00" }, 2814b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "as", "America/Havana", "2004-07-15T00:00:00Z", "zzzz", "GMT-04:00", "-4:00" }, 2815b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "as", "America/Havana", "2004-07-15T00:00:00Z", "v", "CU", "America/Havana" }, 2816b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "as", "America/Havana", "2004-07-15T00:00:00Z", "vvvv", "CU", "America/Havana" }, 2817b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 2818b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "as", "Australia/ACT", "2004-01-15T00:00:00Z", "Z", "+1100", "+11:00" }, 2819b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "as", "Australia/ACT", "2004-01-15T00:00:00Z", "ZZZZ", "GMT+11:00", "+11:00" }, 2820b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "as", "Australia/ACT", "2004-01-15T00:00:00Z", "z", "GMT+11:00", "+11:00" }, 2821b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "as", "Australia/ACT", "2004-01-15T00:00:00Z", "zzzz", "GMT+11:00", "+11:00" }, 2822b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "as", "Australia/ACT", "2004-07-15T00:00:00Z", "Z", "+1000", "+10:00" }, 2823b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "as", "Australia/ACT", "2004-07-15T00:00:00Z", "ZZZZ", "GMT+10:00", "+10:00" }, 2824b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "as", "Australia/ACT", "2004-07-15T00:00:00Z", "z", "GMT+10:00", "+10:00" }, 2825b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "as", "Australia/ACT", "2004-07-15T00:00:00Z", "zzzz", "GMT+10:00", "+10:00" }, 2826b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "as", "Australia/ACT", "2004-07-15T00:00:00Z", "v", "AU (Sydney)", "Australia/Sydney" }, 2827b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "as", "Australia/ACT", "2004-07-15T00:00:00Z", "vvvv", "AU (Sydney)", "Australia/Sydney" }, 2828b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 2829b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "as", "Australia/Sydney", "2004-01-15T00:00:00Z", "Z", "+1100", "+11:00" }, 2830b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "as", "Australia/Sydney", "2004-01-15T00:00:00Z", "ZZZZ", "GMT+11:00", "+11:00" }, 2831b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "as", "Australia/Sydney", "2004-01-15T00:00:00Z", "z", "GMT+11:00", "+11:00" }, 2832b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "as", "Australia/Sydney", "2004-01-15T00:00:00Z", "zzzz", "GMT+11:00", "+11:00" }, 2833b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "as", "Australia/Sydney", "2004-07-15T00:00:00Z", "Z", "+1000", "+10:00" }, 2834b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "as", "Australia/Sydney", "2004-07-15T00:00:00Z", "ZZZZ", "GMT+10:00", "+10:00" }, 2835b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "as", "Australia/Sydney", "2004-07-15T00:00:00Z", "z", "GMT+10:00", "+10:00" }, 2836b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "as", "Australia/Sydney", "2004-07-15T00:00:00Z", "zzzz", "GMT+10:00", "+10:00" }, 2837b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "as", "Australia/Sydney", "2004-07-15T00:00:00Z", "v", "AU (Sydney)", "Australia/Sydney" }, 2838b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "as", "Australia/Sydney", "2004-07-15T00:00:00Z", "vvvv", "AU (Sydney)", "Australia/Sydney" }, 2839b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 2840b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "as", "Europe/London", "2004-01-15T00:00:00Z", "Z", "+0000", "+0:00" }, 2841b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "as", "Europe/London", "2004-01-15T00:00:00Z", "ZZZZ", "GMT+00:00", "+0:00" }, 2842b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "as", "Europe/London", "2004-01-15T00:00:00Z", "z", "GMT+00:00", "+0:00" }, 2843b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "as", "Europe/London", "2004-01-15T00:00:00Z", "zzzz", "GMT+00:00", "+0:00" }, 2844b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "as", "Europe/London", "2004-07-15T00:00:00Z", "Z", "+0100", "+1:00" }, 2845b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "as", "Europe/London", "2004-07-15T00:00:00Z", "ZZZZ", "GMT+01:00", "+1:00" }, 2846b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "as", "Europe/London", "2004-07-15T00:00:00Z", "z", "GMT+01:00", "+1:00" }, 2847b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "as", "Europe/London", "2004-07-15T00:00:00Z", "zzzz", "GMT+01:00", "+1:00" }, 2848b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "as", "Europe/London", "2004-07-15T00:00:00Z", "v", "GB", "Europe/London" }, 2849b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "as", "Europe/London", "2004-07-15T00:00:00Z", "vvvv", "GB", "Europe/London" }, 2850b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 2851b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "as", "Etc/GMT+3", "2004-01-15T00:00:00Z", "Z", "-0300", "-3:00" }, 2852b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "as", "Etc/GMT+3", "2004-01-15T00:00:00Z", "ZZZZ", "GMT-03:00", "-3:00" }, 2853b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "as", "Etc/GMT+3", "2004-01-15T00:00:00Z", "z", "GMT-03:00", "-3:00" }, 2854b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "as", "Etc/GMT+3", "2004-01-15T00:00:00Z", "zzzz", "GMT-03:00", "-3:00" }, 2855b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "as", "Etc/GMT+3", "2004-07-15T00:00:00Z", "Z", "-0300", "-3:00" }, 2856b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "as", "Etc/GMT+3", "2004-07-15T00:00:00Z", "ZZZZ", "GMT-03:00", "-3:00" }, 2857b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "as", "Etc/GMT+3", "2004-07-15T00:00:00Z", "z", "GMT-03:00", "-3:00" }, 2858b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "as", "Etc/GMT+3", "2004-07-15T00:00:00Z", "zzzz", "GMT-03:00", "-3:00" }, 2859b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "as", "Etc/GMT+3", "2004-07-15T00:00:00Z", "v", "GMT-03:00", "-3:00" }, 2860b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "as", "Etc/GMT+3", "2004-07-15T00:00:00Z", "vvvv", "GMT-03:00", "-3:00" }, 2861b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 2862b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru // JB#5150 2863b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "as", "Asia/Calcutta", "2004-01-15T00:00:00Z", "Z", "+0530", "+5:30" }, 2864b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "as", "Asia/Calcutta", "2004-01-15T00:00:00Z", "ZZZZ", "GMT+05:30", "+5:30" }, 2865b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "as", "Asia/Calcutta", "2004-01-15T00:00:00Z", "z", "\\u09AD\\u09BE. \\u09B8.", "+5:30" }, 2866b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "as", "Asia/Calcutta", "2004-01-15T00:00:00Z", "zzzz", "\\u09AD\\u09BE\\u09F0\\u09A4\\u09C0\\u09AF\\u09BC \\u09B8\\u09AE\\u09AF\\u09BC", "+5:30" }, 2867b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "as", "Asia/Calcutta", "2004-07-15T00:00:00Z", "Z", "+0530", "+5:30" }, 2868b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "as", "Asia/Calcutta", "2004-07-15T00:00:00Z", "ZZZZ", "GMT+05:30", "+5:30" }, 2869b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "as", "Asia/Calcutta", "2004-07-15T00:00:00Z", "z", "\\u09AD\\u09BE. \\u09B8.", "+05:30" }, 2870b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "as", "Asia/Calcutta", "2004-07-15T00:00:00Z", "zzzz", "\\u09AD\\u09BE\\u09F0\\u09A4\\u09C0\\u09AF\\u09BC \\u09B8\\u09AE\\u09AF\\u09BC", "+5:30" }, 2871b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "as", "Asia/Calcutta", "2004-07-15T00:00:00Z", "v", "\\u09AD\\u09BE. \\u09B8.", "Asia/Calcutta" }, 2872b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "as", "Asia/Calcutta", "2004-07-15T00:00:00Z", "vvvv", "\\u09AD\\u09BE\\u09F0\\u09A4\\u09C0\\u09AF\\u09BC \\u09B8\\u09AE\\u09AF\\u09BC", "Asia/Calcutta" }, 2873b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { "", "", "", "", "", "" }, 2874b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru }; 2875b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 2876b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru if (isICUVersionAtLeast(ICU_39)) 2877b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru { 2878b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru UErrorCode status; 2879b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru Calendar *cal = GregorianCalendar::createInstance(status); 2880b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru for (int i = 0; fallbackTests[i][0][0]; i++) { 2881b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru UnicodeString info[5]; 2882b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru for ( int j = 0 ; j < 5 ; j++ ) { 2883b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru UnicodeString value(fallbackTests[i][j],""); 2884b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru value = value.unescape(); 2885b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru info[j].setTo(value); 2886b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru } 2887b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru logln(info[0] + ";" + info[1] + ";" + info[2] + ";" + info[3]); 2888b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 2889b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru TimeZone *tz = TimeZone::createTimeZone(info[1]); 2890b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 2891b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru if ( info[2] == UNICODE_STRING_SIMPLE("2004-07-15T00:00:00Z")) { 2892b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru cal->set(2004,6,15,0,0,0); 2893b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru } else { 2894b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru cal->set(2004,0,15,0,0,0); 2895b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru } 2896b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 2897b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru SimpleDateFormat *fmt = new SimpleDateFormat(info[3], Locale(fallbackTests[i][0]),status); 2898b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru cal->setTimeZone(*tz); 2899b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru UnicodeString result; 2900b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru FieldPosition pos(0); 2901b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru fmt->format(*cal,result,pos); 2902b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru if (result != info[4]) { 2903b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru errln(info[0] + ";" + info[1] + ";" + info[2] + ";" + info[3] + " expected: '" + 2904b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru info[4] + "' but got: '" + result + "'"); 2905b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru } 2906b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru } 2907b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru } else { 2908b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru logln("Warning: Skipping TestTimeZoneDisplayName. TODO: Fix in ICU 4.0"); 2909b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru } 2910b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru} 2911b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 2912b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru/* 2913b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queruvoid DateFormatTest::TestRelativeError(void) 2914b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru{ 2915b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru UErrorCode status; 2916b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru Locale en("en"); 2917b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 2918b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru DateFormat *en_reltime_reldate = DateFormat::createDateTimeInstance(DateFormat::kFullRelative,DateFormat::kFullRelative,en); 2919b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru if(en_reltime_reldate == NULL) { 2920b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru logln("PASS: rel date/rel time failed"); 2921b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru } else { 2922b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru errln("FAIL: rel date/rel time created, should have failed."); 2923b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru delete en_reltime_reldate; 2924b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru } 2925b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru} 2926b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 2927b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queruvoid DateFormatTest::TestRelativeOther(void) 2928b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru{ 2929b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru logln("Nothing in this test. When we get more data from CLDR, put in some tests of -2, +2, etc. "); 2930b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru} 2931b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru*/ 2932b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 2933b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 2934b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 2935b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru#endif /* #if !UCONFIG_NO_FORMATTING */ 2936b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 2937b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru//eof 2938