|
1 <?xml version="1.0" encoding="utf-8"?> |
|
2 <!-- Copyright (c) 2007-2010 Nokia Corporation and/or its subsidiary(-ies) All rights reserved. --> |
|
3 <!-- This component and the accompanying materials are made available under the terms of the License |
|
4 "Eclipse Public License v1.0" which accompanies this distribution, |
|
5 and is available at the URL "http://www.eclipse.org/legal/epl-v10.html". --> |
|
6 <!-- Initial Contributors: |
|
7 Nokia Corporation - initial contribution. |
|
8 Contributors: |
|
9 --> |
|
10 <!DOCTYPE concept |
|
11 PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd"> |
|
12 <concept id="GUID-71DCEB48-8E8C-59A0-A99F-23245FF2DF13" xml:lang="en"><title>timezoneconversion: |
|
13 Time Zone Conversion Example</title><prolog><metadata><keywords/></metadata></prolog><conbody> |
|
14 <section><title>Download</title> <p>Click on the following link to download |
|
15 the example: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/zips/guid-c9019536-b967-4421-8221-150afb121307.zip" scope="external">TZExample.zip</xref></p><p>Click: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/guid-c9019536-b967-4421-8221-150afb121307.html" scope="peer">browse</xref> to view the example code. </p> </section> |
|
16 <section><title>Description</title> <p>This example code first connects to |
|
17 the time zone server (class <xref href="GUID-052221AD-916E-3E47-9510-AC0495A19A70.dita"><apiname>RTz</apiname></xref>). Then it uses <xref href="GUID-052221AD-916E-3E47-9510-AC0495A19A70.dita#GUID-052221AD-916E-3E47-9510-AC0495A19A70/GUID-A7D33D36-8AA5-3775-B4B8-36C30EF88DB0"><apiname>RTz::ConvertToLocalTime()</apiname></xref> to |
|
18 convert a UTC time to local time. The time to convert and the time zone to |
|
19 convert it to are randomly chosen. This demonstrates that the time zone server |
|
20 can convert any time, past, present or future, for any time zone, as long |
|
21 as a rule exists for the conversion. Conversion rules are stored in a native |
|
22 Symbian OS database that is a compressed form of the Olson time zone database |
|
23 (<xref href="http://www.twinsun.com/tz/tz-link.htm" scope="external">http://www.twinsun.com/tz/tz-link.htm</xref>). |
|
24 The database can be configured by phone manufacturers to save space. </p> <p>The |
|
25 example then converts the current local time for the system time zone to the |
|
26 current local time for a different time zone. This is a two stage process. |
|
27 First, the local time is converted to UTC using <xref href="GUID-052221AD-916E-3E47-9510-AC0495A19A70.dita#GUID-052221AD-916E-3E47-9510-AC0495A19A70/GUID-645162AA-631E-3125-A002-82EB8D91DB08"><apiname>RTz::ConvertToUniversalTime()</apiname></xref>. |
|
28 When converting between local and UTC times for the current system time zone, |
|
29 there is no need to specify the time zone ID. Then UTC is converted to local |
|
30 time for the other time zone. Before the example terminates, the connection |
|
31 to the server is closed. </p> <p>No special capabilities are needed to do |
|
32 time zone conversion. </p> <p>Class <xref href="GUID-0B5453C5-76A2-31B2-A32C-2CDC1F3367CE.dita"><apiname>CTzId</apiname></xref> identifies a |
|
33 time zone. It stores the identifier either as text, (for instance Australia/Sydney), |
|
34 or as a number. Numeric time zone IDs are assigned by the phone manufacturer, |
|
35 so can vary from phone to phone. </p> <p>For efficiency, the time zone server |
|
36 caches a copy of a range of conversion rules for the current time zone. These |
|
37 cached rules are <i>actualised</i>, meaning they have been expanded from the |
|
38 encoded compact format as stored in the database, so are quicker to access. </p> <p>Class <xref href="GUID-37A4A4ED-FFF8-3C98-B028-EA1947EA7BEF.dita"><apiname>CTzConverter</apiname></xref>, |
|
39 which is not used in this example, provides an alternative conversion API |
|
40 to <xref href="GUID-052221AD-916E-3E47-9510-AC0495A19A70.dita"><apiname>RTz</apiname></xref>. It caches 5 years' worth of conversion rules for |
|
41 a specific time zone (either the time zone specified in the conversion function, |
|
42 or the system time zone), on the client side, so avoiding the need for an |
|
43 an IPC call for each conversion. <codeph>CTzConverter</codeph> is more efficient |
|
44 than <codeph>RTz</codeph> when doing multiple conversions for a single time |
|
45 zone. </p> </section> |
|
46 <section><title>Usage</title><p> This is a console application, so does not |
|
47 have a GUI. It builds an executable called<filepath> TZExample.exe</filepath> in |
|
48 the standard location (<filepath>\epoc32\release\winscw\<build_variant></filepath> for |
|
49 CodeWarrior). After launching the executable, depending on the emulator you |
|
50 are using, you may need to task away from the app launcher/shell screen to |
|
51 view the console.</p></section> |
|
52 <section><title>Class Summary</title><p> <xref href="GUID-052221AD-916E-3E47-9510-AC0495A19A70.dita"><apiname>RTz</apiname></xref></p><p> <xref href="GUID-0B5453C5-76A2-31B2-A32C-2CDC1F3367CE.dita"><apiname>CTzId</apiname></xref> </p><p> <xref href="GUID-A2D3BA72-9B27-3BFF-950A-D7E3B2004821.dita"><apiname>TTime</apiname></xref> </p></section> |
|
53 </conbody></concept> |