Imported Upstream version 0.8~alpha1
[platform/upstream/syncevolution.git] / src / client-api / src / c++ / symbian / base / util / timeUtils.cpp
1 /*
2  * Funambol is a mobile platform developed by Funambol, Inc.
3  * Copyright (C) 2003 - 2007 Funambol, Inc.
4  *
5  * This program is free software; you can redistribute it and/or modify it under
6  * the terms of the GNU Affero General Public License version 3 as published by
7  * the Free Software Foundation with the addition of the following permission
8  * added to Section 15 as permitted in Section 7(a): FOR ANY PART OF THE COVERED
9  * WORK IN WHICH THE COPYRIGHT IS OWNED BY FUNAMBOL, FUNAMBOL DISCLAIMS THE
10  * WARRANTY OF NON INFRINGEMENT  OF THIRD PARTY RIGHTS.
11  *
12  * This program is distributed in the hope that it will be useful, but WITHOUT
13  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
14  * FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more
15  * details.
16  *
17  * You should have received a copy of the GNU Affero General Public License
18  * along with this program; if not, see http://www.gnu.org/licenses or write to
19  * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
20  * MA 02110-1301 USA.
21  *
22  * You can contact Funambol, Inc. headquarters at 643 Bair Island Road, Suite
23  * 305, Redwood City, CA 94063, USA, or at email address info@funambol.com.
24  *
25  * The interactive user interfaces in modified source and object code versions
26  * of this program must display Appropriate Legal Notices, as required under
27  * Section 5 of the GNU Affero General Public License version 3.
28  *
29  * In accordance with Section 7(b) of the GNU Affero General Public License
30  * version 3, these Appropriate Legal Notices must retain the display of the
31  * "Powered by Funambol" logo. If the display of the logo is not reasonably
32  * feasible for technical reasons, the Appropriate Legal Notices must display
33  * the words "Powered by Funambol".
34  */
35
36 #include <e32base.h>
37 #include <aknnotewrappers.h>
38 #include <apgtask.h>
39 #include <eikenv.h>
40 #include <apgcli.h> 
41 #include <tz.h>              // RTz, CTzId
42 #include <tzconverter.h>     // CTzConverter
43
44 #include "base/fscapi.h"
45 #include "base/util/timeUtils.h"
46
47
48
49
50
51 void utcToLocalTime(TTime& aTime /*, const CTzId& aZone*/) {
52
53     // Connect to the time zone server
54     RTz tzServer;
55     User::LeaveIfError(tzServer.Connect());
56     CleanupClosePushL(tzServer);
57
58     // Create a time zone converter
59     CTzConverter* tzConverter = CTzConverter::NewL(tzServer);
60     CleanupStack::PushL(tzConverter);
61
62     // Convert from UTC to local time
63     tzConverter->ConvertToLocalTime(aTime);
64     CleanupStack::PopAndDestroy(2);         // tzConverter, tzServer
65 }
66
67 void localTimeToUtc(TTime& aTime /*, const CTzId& aZone*/) {
68
69     // Connect to the time zone server
70     RTz tzServer;
71     User::LeaveIfError(tzServer.Connect());
72     CleanupClosePushL(tzServer);
73
74     // Create a time zone converter
75     CTzConverter* tzConverter = CTzConverter::NewL(tzServer);
76     CleanupStack::PushL(tzConverter);
77
78     // Convert from UTC to local time
79     tzConverter->ConvertToUniversalTime(aTime);
80     CleanupStack::PopAndDestroy(2);         // tzConverter, tzServer
81 }