]>
Commit | Line | Data |
---|---|---|
f3c0d7a5 A |
1 | Copyright (C) 2016 and later: Unicode, Inc. and others. |
2 | License & terms of use: http://www.unicode.org/copyright.html#License | |
3 | ||
729e4ab9 A |
4 | Copyright (c) 2002-2010, International Business Machines Corporation and others. All Rights Reserved. |
5 | ||
6 | IMPORTANT: | |
7 | ||
8 | This sample was originally intended as an exercise for the ICU Workshop (September 2000). | |
9 | The code currently provided in the solution file is the answer to the exercises, each step can still be found in the 'answers' subdirectory. | |
10 | ||
11 | ||
12 | ||
b75a7d8f | 13 | ** Workshop homepage is: |
46f4442e | 14 | http://www.icu-project.org/docs/workshop_2000/agenda.html |
b75a7d8f | 15 | |
b75a7d8f A |
16 | #Date/Time/Number Formatting Support |
17 | 9:30am - 10:30am | |
18 | Alan Liu | |
19 | ||
20 | Topics: | |
21 | 1. What is the date/time support in ICU? | |
22 | 2. What is the timezone support in ICU? | |
23 | 3. What kind of formatting and parsing support is available in ICU, i.e. | |
24 | NumberFormat, DateFormat, MessageFormat? | |
25 | ||
26 | ||
27 | INSTRUCTIONS | |
28 | ------------ | |
29 | ||
30 | This exercise was first developed and tested on ICU release 1.6.0, Win32, | |
31 | Microsoft Visual C++ 6.0. It should work on other ICU releases and | |
32 | other platforms as well. | |
33 | ||
34 | MSVC: | |
73c04bcf | 35 | Open the file "datefmt.sln" in Microsoft Visual C++. |
b75a7d8f A |
36 | |
37 | Unix: | |
38 | - Build and install ICU with a prefix, for example '--prefix=/home/srl/ICU' | |
39 | - Set the variable ICU_PREFIX=/home/srl/ICU and use GNU make in | |
40 | this directory. | |
41 | - You may use 'make check' to invoke this sample. | |
42 | ||
43 | PROBLEMS | |
44 | -------- | |
45 | ||
46 | Problem 0: | |
47 | ||
48 | Set up the program, build it, and run it. To start with, the | |
49 | program prints out a list of languages. | |
50 | ||
51 | Problem 1: Basic Date Formatting (Easy) | |
52 | ||
53 | Create a calendar, and use it to get the UDate for June 4, 1999, | |
54 | 0:00 GMT (or any date of your choosing). You will have to create a | |
55 | TimeZone (use the createZone() function already defined in main.cpp) | |
56 | and a Calendar object, and make the calendar use the time zone. | |
57 | ||
58 | Once you have the UDate, create a DateFormat object in each of the | |
59 | languages in the LANGUAGE array, and display the date in that | |
60 | language. Use the DateFormat::createDateInstance() method to create | |
61 | the date formatter. | |
62 | ||
63 | Problem 2: Date Formatting, Specific Time Zone (Medium) | |
64 | ||
65 | To really localize a time display, one can also specify the time | |
66 | zone in which the time should be displayed. For each language, | |
67 | also create different time zones from the TIMEZONE list. | |
68 | ||
69 | To format a date with a specific calendar and zone, you must deal with | |
70 | three objects: a DateFormat, a Calendar, and a TimeZone. Each object | |
71 | must be linked to another in correct sequence: The Calendar must use | |
72 | the TimeZone, and the DateFormat must use the Calendar. | |
73 | ||
74 | DateFormat =uses=> Calendar =uses=> TimeZone | |
75 | ||
76 | Use either setFoo() or adoptFoo() methods, depending on where you | |
77 | want to have ownership. | |
78 | ||
79 | NOTE: It's not always desirable to change the time to a local time | |
80 | zone before display. For instance, if some even occurs at 0:00 GMT | |
81 | on the first of the month, it's probably clearer to just state that. | |
82 | Stating that it occurs at 5:00 PM PDT on the day before in the | |
83 | summer, and 4:00 PM PST on the day before in the winter will just | |
84 | confuse the issue. | |
85 | ||
86 | ||
87 | NOTES | |
88 | ----- | |
89 | ||
90 | To see a list of system TimeZone IDs, use the TimeZone::create- | |
91 | AvailableIDs() methods. Alternatively, look at the file | |
92 | icu/docs/tz.htm. This has a hyperlinked list of current system zones. | |
93 | ||
94 | ||
95 | ANSWERS | |
96 | ------- | |
97 | ||
98 | The exercise includes answers. These are in the "answers" directory, | |
99 | and are numbered 1, 2, etc. | |
100 | ||
101 | If you get stuck and you want to move to the next step, copy the | |
102 | answers file into the main directory in order to proceed. E.g., | |
103 | "main_1.cpp" contains the original "main.cpp" file. "main_2.cpp" | |
104 | contains the "main.cpp" file after problem 1. Etc. | |
105 | ||
106 | ||
107 | Have fun! |