genericopenlibs/openenvcore/libc/src/timefuncs.cpp
branchRCL_3
changeset 75 254b651f304e
parent 64 c44f36bb61a3
equal deleted inserted replaced
64:c44f36bb61a3 75:254b651f304e
   219         }
   219         }
   220 
   220 
   221     TDateTime tdt = time.DateTime();
   221     TDateTime tdt = time.DateTime();
   222     
   222     
   223     //enable the cache
   223     //enable the cache
   224 	TInt status = KErrNone;
   224     CTzConverter* ctzConverter = CTzConverter::NewL(Backend()->TZServer());
   225 	RTz& rtzServer = Backend()->TZServer(status);
       
   226 	if(status != KErrNone)
       
   227 		User::Leave(status);
       
   228 
       
   229     CTzConverter* ctzConverter = CTzConverter::NewL(rtzServer);
       
   230     
   225     
   231     CleanupStack::PushL(ctzConverter);
   226     CleanupStack::PushL(ctzConverter);
   232     if(ctzConverter->ConvertToLocalTime(time) == KErrNone)      
   227     if(ctzConverter->ConvertToLocalTime(time) == KErrNone)      
   233         {
   228         {
   234         tdt = time.DateTime();
   229         tdt = time.DateTime();
   246         TInt timeZoneId = ctzConverter->CurrentTzId();
   241         TInt timeZoneId = ctzConverter->CurrentTzId();
   247         CTzId* zoneid = CTzId::NewL((TUint)timeZoneId);
   242         CTzId* zoneid = CTzId::NewL((TUint)timeZoneId);
   248         CleanupStack::PushL(zoneid);
   243         CleanupStack::PushL(zoneid);
   249         
   244         
   250         atmStruct->tm_isdst  = -1;
   245         atmStruct->tm_isdst  = -1;
   251         UpdateDstAndTznameL(rtzServer, *zoneid, atmStruct, time, Utime, tdt, ETzWallTimeReference);
   246         UpdateDstAndTznameL(Backend()->TZServer(), *zoneid, atmStruct, time, Utime, tdt, ETzWallTimeReference);
   252         CleanupStack::PopAndDestroy(zoneid);
   247         CleanupStack::PopAndDestroy(zoneid);
   253         }   
   248         }   
   254     
   249     
   255 
   250 
   256     CleanupStack::PopAndDestroy(1);
   251     CleanupStack::PopAndDestroy(1);
   283         TInt64 epochRefTime = utcTimeMicroSec - KEpochTime;
   278         TInt64 epochRefTime = utcTimeMicroSec - KEpochTime;
   284         (*aUTCTime) = (TInt) (epochRefTime / 1000000);
   279         (*aUTCTime) = (TInt) (epochRefTime / 1000000);
   285         return;
   280         return;
   286         }
   281         }
   287 
   282 
   288 	TInt status = KErrNone;
   283 
   289 	RTz& rtzServer = Backend()->TZServer(status);
   284     CTzConverter* ctzConverter = CTzConverter::NewL(Backend()->TZServer());      
   290 	if(status != KErrNone)
       
   291 		User::Leave(status);
       
   292 
       
   293     CTzConverter* ctzConverter = CTzConverter::NewL(rtzServer);      
       
   294     CleanupStack::PushL(ctzConverter);
   285     CleanupStack::PushL(ctzConverter);
   295  /* Following fields are updated if successful:
   286  /* Following fields are updated if successful:
   296   * tm_wday
   287   * tm_wday
   297   * tm_yday
   288   * tm_yday
   298   * tm_isdst
   289   * tm_isdst
   312         TInt timeZoneId = ctzConverter->CurrentTzId();
   303         TInt timeZoneId = ctzConverter->CurrentTzId();
   313         CTzId* zoneid = CTzId::NewL((TUint)timeZoneId);
   304         CTzId* zoneid = CTzId::NewL((TUint)timeZoneId);
   314         CleanupStack::PushL(zoneid);
   305         CleanupStack::PushL(zoneid);
   315 
   306 
   316         aTmStruct->tm_isdst  = -1;
   307         aTmStruct->tm_isdst  = -1;
   317         UpdateDstAndTznameL(rtzServer, *zoneid, aTmStruct, oldTime, time, tdt, ETzUtcTimeReference);
   308         UpdateDstAndTznameL(Backend()->TZServer(), *zoneid, aTmStruct, oldTime, time, tdt, ETzUtcTimeReference);
   318         CleanupStack::PopAndDestroy(zoneid);
   309         CleanupStack::PopAndDestroy(zoneid);
   319         }
   310         }
   320     cachetm = *aTmStruct;
   311     cachetm = *aTmStruct;
   321     CleanupStack::PopAndDestroy(1);
   312     CleanupStack::PopAndDestroy(1);
   322     }
   313     }