Converting from UTC to local time in a non-system time zone


  • The following code fragment converts a randomly chosen UTC time to local time for London:


    _LIT8( KEuropeLondon,"Europe/London" );
    // Create a pointer to the time zone id.
    // This is the time zone for the local time to which you wish to convert.
    CTzId* myZoneId = CTzId::NewL( KEuropeLondon );
    CleanupStack::PushL( myZoneId );
    // Create a client interface object to the time zone server
    RTz myTZoneServer; 
    // Connect to the time zone server, leaves if fails to connect
    User::LeaveIfError( myTZoneServer.Connect() ); 
    CleanupClosePushL( myTZoneServer );
    // Create a converter object.
    CTzConverter* myConverter = CTzConverter::NewL( myTZoneServer ); 
    CleanupStack::PushL( myConverter );
    _LIT8( KMyTime,"20050328:185600.00" ); // UTC time to convert (28 March 2005 18:56 hrs).
    TTime myTime( KMyTime ); // Create the time as a TTime object
    // Convert UTC to local time in Europe/London time zone.
    myConverter->ConvertToLocalTime( myTime, *myZoneId ); 
    // myTime is updated to hold the local time value.
    // Clean up
    CleanupStack::PopAndDestroy(3);// causes myTZoneServer.Close() to be called