16f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org/********************************************************************
26f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * COPYRIGHT:
36f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Copyright (c) 2008-2013, International Business Machines Corporation and
46f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * others. All Rights Reserved.
56f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org ********************************************************************/
66f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org//! [getBestPatternExample1]
76f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#include <iostream>
86f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#include "unicode/smpdtfmt.h"
96f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#include "unicode/dtptngen.h"
106f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#include "unicode/ustdio.h"
116f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org//! [getBestPatternExample1]
126f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
136f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgusing namespace std;
146f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
156f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgstatic void getBestPatternExample() {
166f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
176f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org		u_printf("========================================================================\n");
186f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org		u_printf(" getBestPatternExample()\n");
196f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        u_printf("\n");
206f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        u_printf(" Use DateTimePatternGenerator to create customized date/time pattern:\n");
216f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        u_printf(" yQQQQ,yMMMM, MMMMd, hhmm, jjmm per locale\n");
226f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        u_printf("========================================================================\n");
236f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org		//! [getBestPatternExample]
246f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org	UnicodeString skeletons [] = {
256f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org		UnicodeString("yQQQQ"), // year + full name of quarter, i.e., 4th quarter 1999
266f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        UnicodeString("yMMMM"), // year + full name of month, i.e., October 1999
276f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        UnicodeString("MMMMd"), // full name of month + day of the month, i.e., October 25
286f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        UnicodeString("hhmm"),  // 12-hour-cycle format, i.e., 1:32 PM
296f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        UnicodeString("jjmm"), // preferred hour format for the given locale, i.e., 24-hour-cycle format for fr_FR
306f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org		0,
316f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org	};
326f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
336f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org	Locale locales[] = {
346f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org		Locale ("en_US"),
356f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org		Locale ("fr_FR"),
366f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org		Locale ("zh_CN"),
376f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org	};
386f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
396f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org	const char* filename = "sample.txt";
406f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org	/* open a UTF-8 file for writing */
416f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org	UFILE* f = u_fopen(filename, "w", NULL,"UTF-8");
426f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org	UnicodeString dateReturned;
436f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org	UErrorCode status =U_ZERO_ERROR;
446f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org	Calendar *cal = Calendar::createInstance(status);
456f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org	cal->set (1999,9,13,23,58,59);
466f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org	UDate date = cal->getTime(status);
476f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org	u_fprintf(f, "%-20S%-20S%-20S%-20S\n", UnicodeString("Skeleton").getTerminatedBuffer(),UnicodeString("en_US").getTerminatedBuffer(),UnicodeString("fr_FR").getTerminatedBuffer(),UnicodeString("zh_CN").getTerminatedBuffer());
486f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org	for (int i=0;skeletons[i]!=NULL;i++) {
496f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org		u_fprintf(f, "%-20S",skeletons[i].getTerminatedBuffer());
506f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org		for (int j=0;j<sizeof(locales)/sizeof(locales[0]);j++) {
516f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org			// create a DateTimePatternGenerator instance for given locale
526f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org			DateTimePatternGenerator *dtfg= DateTimePatternGenerator::createInstance(locales[j],status);
536f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org			// use getBestPattern method to get the best pattern for the given skeleton
546f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org			UnicodeString pattern = dtfg->getBestPattern(skeletons[i],status);
556f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org			// Constructs a SimpleDateFormat with the best pattern generated above and the given locale
566f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org			SimpleDateFormat *sdf = new SimpleDateFormat(pattern,locales[j],status);
576f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org			dateReturned.remove();
586f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org			// Get the format of the given date
596f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org			sdf->format(date,dateReturned,status);
606f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org			/* write Unicode string to file */
616f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org			u_fprintf(f, "%-20S", dateReturned.getTerminatedBuffer());
626f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org			delete dtfg;
636f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org			delete sdf;
646f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org		}
656f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org		u_fprintf(f,"\n");
666f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org	}
676f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org	/* close the file resource */
686f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org	u_fclose(f);
696f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org	delete cal;
706f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org	//! [getBestPatternExample]
716f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org	 /* output of the sample code:
726f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org     ***********************************************************************************************************
736f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org      Skeleton			en_US							fr_FR							zh_CN
746f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
756f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org      yQQQQ				4th quarter 1999				4e trimestre 1999				1999年第四季度
766f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
776f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org      yMMMM				October 1999					octobre 1999					1999年10月
786f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
796f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org      MMMMd				October 13						13 octobre						10月13日
806f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
816f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org	  hhmm				11:58 PM						11:58 PM						下午11:58
826f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
836f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org      jjmm				11:58 PM						23:58							下午11:58
846f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
856f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org     ************************************************************************************************************/
866f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org}
876f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
886f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgstatic void addPatternExample() {
896f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
906f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org		u_printf("========================================================================\n");
916f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        u_printf(" addPatternExample()\n");
926f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org		u_printf("\n");
936f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        u_printf(" Use addPattern API to add new '. von' to existing pattern\n");
946f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        u_printf("========================================================================\n");
956f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org		//! [addPatternExample]
966f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org		UErrorCode status =U_ZERO_ERROR;
976f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org		UnicodeString conflictingPattern,dateReturned, pattern;
986f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org		Locale locale=Locale::getFrance();
996f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org		Calendar *cal = Calendar::createInstance(status);
1006f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org		cal->set (1999,9,13,23,58,59);
1016f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org		UDate date = cal->getTime(status);
1026f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        // Create an DateTimePatternGenerator instance for the given locale
1036f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org		DateTimePatternGenerator *dtfg= DateTimePatternGenerator::createInstance(locale,status);
1046f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org		SimpleDateFormat *sdf = new SimpleDateFormat(dtfg->getBestPattern("MMMMddHmm",status),locale,status);
1056f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        // Add '. von' to the existing pattern
1066f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        dtfg->addPattern("dd'. von' MMMM", true, conflictingPattern,status);
1076f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        // Apply the new pattern
1086f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        sdf->applyPattern(dtfg->getBestPattern("MMMMddHmm",status));
1096f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org		dateReturned = sdf->format(date, dateReturned, status);
1106f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org		pattern =sdf->toPattern(pattern);
1116f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org		u_printf("%s\n", "New Pattern for FRENCH: ");
1126f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org      	u_printf("%S\n", pattern.getTerminatedBuffer());
1136f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org		u_printf("%s\n", "Date Time in new Pattern: ");
1146f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org		u_printf("%S\n", dateReturned.getTerminatedBuffer());
1156f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org		delete dtfg;
1166f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org		delete sdf;
1176f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org		delete cal;
1186f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
1196f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org		//! [addPatternExample]
1206f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        /* output of the sample code:
1216f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        ************************************************************************************************
1226f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org         New Pattern for FRENCH: dd. 'von' MMMM HH:mm
1236f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org         Date Time in new Pattern: 13. von octobre 23:58
1246f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
1256f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        *************************************************************************************************/
1266f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 	}
1276f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
1286f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgstatic void replaceFieldTypesExample() {
1296f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org		// Use repalceFieldTypes API to replace zone 'zzzz' with 'vvvv'
1306f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org       u_printf("========================================================================\n");
1316f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org       u_printf(" replaceFieldTypeExample()\n");
1326f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org       u_printf("\n");
1336f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org       u_printf(" Use replaceFieldTypes API to replace zone 'zzzz' with 'vvvv'\n");
1346f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org       u_printf("========================================================================\n");
1356f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org	   //! [replaceFieldTypesExample]
1366f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org		UFILE *out = u_finit(stdout, NULL, "UTF-8");
1376f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org		UErrorCode status =U_ZERO_ERROR;
1386f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org		UnicodeString pattern,dateReturned;
1396f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org		Locale locale =Locale::getFrance();
1406f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org		Calendar *cal = Calendar::createInstance(status);
1416f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org		cal->set (1999,9,13,23,58,59);
1426f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org		UDate date = cal->getTime(status);
1436f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org		TimeZone *zone = TimeZone::createTimeZone(UnicodeString("Europe/Paris"));
1446f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org		DateTimePatternGenerator *dtfg = DateTimePatternGenerator::createInstance(locale,status);
1456f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org	    SimpleDateFormat *sdf = new SimpleDateFormat("EEEE d MMMM y HH:mm:ss zzzz",locale,status);
1466f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org		sdf->setTimeZone(*zone);
1476f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org		pattern = sdf->toPattern(pattern);
1486f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org		u_fprintf(out, "%S\n", UnicodeString("Pattern before replacement:").getTerminatedBuffer());
1496f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org      	u_fprintf(out, "%S\n", pattern.getTerminatedBuffer());
1506f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org		dateReturned.remove();
1516f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org		dateReturned = sdf->format(date, dateReturned, status);
1526f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org		u_fprintf(out, "%S\n", UnicodeString("Date/Time format in fr_FR:").getTerminatedBuffer());
1536f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org		u_fprintf(out, "%S\n", dateReturned.getTerminatedBuffer());
1546f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        // Replace zone "zzzz" in the pattern with "vvvv"
1556f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org		UnicodeString newPattern = dtfg->replaceFieldTypes(pattern, "vvvv", status);
1566f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org		// Apply the new pattern
1576f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org		sdf->applyPattern(newPattern);
1586f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org		dateReturned.remove();
1596f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org		dateReturned = sdf->format(date, dateReturned, status);
1606f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org		u_fprintf(out, "%S\n", UnicodeString("Pattern after replacement:").getTerminatedBuffer());
1616f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org     	u_fprintf(out, "%S\n", newPattern.getTerminatedBuffer());
1626f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org     	u_fprintf(out, "%S\n", UnicodeString("Date/Time format in fr_FR:").getTerminatedBuffer());
1636f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org		u_fprintf(out, "%S\n", dateReturned.getTerminatedBuffer());
1646f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org		delete sdf;
1656f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org		delete dtfg;
1666f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org		delete zone;
1676f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org		delete cal;
1686f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org		u_fclose(out);
1696f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
1706f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org		//! [replaceFieldTypesExample]
1716f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org		/* output of the sample code:
1726f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        *************************************************************************************************
1736f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org         Pattern before replacement:
1746f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org         EEEE d MMMM y HH:mm:ss zzzz
1756f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org         Date/Time format in fr_FR:
1766f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org         jeudi 14 octobre 1999 05:58:59 heure avancée d’Europe centrale
1776f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org         Pattern after replacement:
1786f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org         EEEE d MMMM y HH:mm:ss vvvv
1796f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org         Date/Time format in fr_FR:
1806f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org         jeudi 14 octobre 1999 05:58:59 heure de l’Europe centrale
1816f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
1826f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        *************************************************************************************************/
1836f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    }
1846f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
1856f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgint main (int argc, char* argv[])
1866f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org{
1876f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org	getBestPatternExample();
1886f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org	addPatternExample();
1896f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org	replaceFieldTypesExample();
1906f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org	return 0;
1916f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org}
192