12e5b6d6dSopenharmony_ci--- 22e5b6d6dSopenharmony_cilayout: default 32e5b6d6dSopenharmony_cititle: Date and Time Zone Examples 42e5b6d6dSopenharmony_cinav_order: 4 52e5b6d6dSopenharmony_ciparent: Date/Time 62e5b6d6dSopenharmony_ci--- 72e5b6d6dSopenharmony_ci<!-- 82e5b6d6dSopenharmony_ci© 2020 and later: Unicode, Inc. and others. 92e5b6d6dSopenharmony_ciLicense & terms of use: http://www.unicode.org/copyright.html 102e5b6d6dSopenharmony_ci--> 112e5b6d6dSopenharmony_ci 122e5b6d6dSopenharmony_ci# Date and Time Zone Examples 132e5b6d6dSopenharmony_ci{: .no_toc } 142e5b6d6dSopenharmony_ci 152e5b6d6dSopenharmony_ci## Contents 162e5b6d6dSopenharmony_ci{: .no_toc .text-delta } 172e5b6d6dSopenharmony_ci 182e5b6d6dSopenharmony_ci1. TOC 192e5b6d6dSopenharmony_ci{:toc} 202e5b6d6dSopenharmony_ci 212e5b6d6dSopenharmony_ci--- 222e5b6d6dSopenharmony_ci 232e5b6d6dSopenharmony_ci## C++ TimeZone example code 242e5b6d6dSopenharmony_ci 252e5b6d6dSopenharmony_ciThis example code illustrates some time zone operations. 262e5b6d6dSopenharmony_ci 272e5b6d6dSopenharmony_ci```c++ 282e5b6d6dSopenharmony_ci UErrorCode success = U_ZERO_ERROR; 292e5b6d6dSopenharmony_ci UnicodeString dateReturned, curTZNameEn, curTZNameFr; 302e5b6d6dSopenharmony_ci UDate curDate; 312e5b6d6dSopenharmony_ci int32_t stdOffset,dstOffset; 322e5b6d6dSopenharmony_ci 332e5b6d6dSopenharmony_ci // Create a Time Zone with America/Los_Angeles 342e5b6d6dSopenharmony_ci TimeZone *tzWest = TimeZone::createTimeZone("America/Los_Angeles"); 352e5b6d6dSopenharmony_ci 362e5b6d6dSopenharmony_ci 372e5b6d6dSopenharmony_ci// Print out the Time Zone Name, GMT offset etc. 382e5b6d6dSopenharmony_ci curTZNameEn = tzWest->getDisplayName(Locale::getEnglish(),curTZNameEn); 392e5b6d6dSopenharmony_ci u_printf("%s\n","Current Time Zone Name in English:"); 402e5b6d6dSopenharmony_ci u_printf("%S\n", curTZNameEn.getTerminatedBuffer()); 412e5b6d6dSopenharmony_ci 422e5b6d6dSopenharmony_ci curTZNameFr = tzWest->getDisplayName(Locale::getCanadaFrench(),curTZNameFr); 432e5b6d6dSopenharmony_ci u_printf("%s\n","Current Time Zone Name in French:"); 442e5b6d6dSopenharmony_ci u_printf("%S\n", curTZNameFr.getTerminatedBuffer()); 452e5b6d6dSopenharmony_ci 462e5b6d6dSopenharmony_ci 472e5b6d6dSopenharmony_ci // Create a Calendar to get current date 482e5b6d6dSopenharmony_ci Calendar* calendar = Calendar::createInstance(success); 492e5b6d6dSopenharmony_ci curDate = calendar->getNow(); 502e5b6d6dSopenharmony_ci 512e5b6d6dSopenharmony_ci 522e5b6d6dSopenharmony_ci // Print out the Current Date/Time in the given time zone 532e5b6d6dSopenharmony_ci DateFormat *dt = DateFormat::createDateInstance(); 542e5b6d6dSopenharmony_ci dateReturned = dt->format(curDate,dateReturned,success); 552e5b6d6dSopenharmony_ci u_printf("%s\n", "Current Time:"); 562e5b6d6dSopenharmony_ci u_printf("%S\n", dateReturned.getTerminatedBuffer()); 572e5b6d6dSopenharmony_ci 582e5b6d6dSopenharmony_ci 592e5b6d6dSopenharmony_ci // Use getOffset to get the stdOffset and dstOffset for the given time 602e5b6d6dSopenharmony_ci tzWest->getOffset(curDate,true,stdOffset,dstOffset,success); 612e5b6d6dSopenharmony_ci u_printf("%s\n%d\n","Current Time Zone STD offset:",stdOffset/(1000*60*60)); 622e5b6d6dSopenharmony_ci u_printf("%s\n%d\n","Current Time Zone DST offset:",dstOffset/(1000*60*60)); 632e5b6d6dSopenharmony_ci u_printf("%s\n", "Current date/time is in daylight savings time?"); 642e5b6d6dSopenharmony_ci u_printf("%s\n", (calendar->inDaylightTime(success))?"Yes":"No"); 652e5b6d6dSopenharmony_ci 662e5b6d6dSopenharmony_ci 672e5b6d6dSopenharmony_ci // Use createTimeZoneIDEnumeration to get the specific Time Zone IDs 682e5b6d6dSopenharmony_ci // in United States with -5 hour standard offset from GMT 692e5b6d6dSopenharmony_ci stdOffset = (-5)*U_MILLIS_PER_HOUR; // U_MILLIS_PER_HOUR = 60*60*1000; 702e5b6d6dSopenharmony_ci StringEnumeration *ids = TimeZone::createTimeZoneIDEnumeration(UCAL_ZONE_TYPE_CANONICAL_LOCATION,"US",&stdOffset,success); 712e5b6d6dSopenharmony_ci for (int i=0; i<ids->count(success);i++) { 722e5b6d6dSopenharmony_ci u_printf("%s\n",ids->next(NULL,success)); 732e5b6d6dSopenharmony_ci } 742e5b6d6dSopenharmony_ci 752e5b6d6dSopenharmony_ci 762e5b6d6dSopenharmony_ci // Use Calendar to get the hour of the day for different time zones 772e5b6d6dSopenharmony_ci int32_t hour1,hour2; 782e5b6d6dSopenharmony_ci TimeZone *tzEast = TimeZone::createTimeZone("America/New_York"); 792e5b6d6dSopenharmony_ci Calendar * cal1 = Calendar::createInstance(tzWest,success); 802e5b6d6dSopenharmony_ci Calendar * cal2 = Calendar::createInstance(tzEast,success); 812e5b6d6dSopenharmony_ci hour1 = cal1->get(UCAL_HOUR_OF_DAY,success); 822e5b6d6dSopenharmony_ci hour2 = cal2->get(UCAL_HOUR_OF_DAY,success); 832e5b6d6dSopenharmony_ci u_printf("%s\n%d\n","Current hour of the day in North American West: ", hour1); 842e5b6d6dSopenharmony_ci u_printf("%s\n%d\n","Current hour of the day in North American East: ", hour2); 852e5b6d6dSopenharmony_ci 862e5b6d6dSopenharmony_ci delete cal1; 872e5b6d6dSopenharmony_ci delete cal2; 882e5b6d6dSopenharmony_ci delete ids; 892e5b6d6dSopenharmony_ci delete calendar; 902e5b6d6dSopenharmony_ci delete dt; 912e5b6d6dSopenharmony_ci ``` 92