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