Himanth
Himanth

Reputation: 2446

How to convert my server time to other country time?

I am getting time from server is 2016/07/19--12:20:00 Now I have to change this time according to country. For example If I am in Auckland then time has to like 2016/07/19--18:50:00 I found so many solutions in stack overflow but I can't solve this. Please help me

 NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
        [dateFormatter setDateFormat:@"YYYY/MM/dd--HH:mm:ss"];
        NSDate* sourceDate = [dateFormatter dateFromString:model.tripEndTime];
        NSTimeZone* sourceTimeZone = [NSTimeZone timeZoneWithAbbreviation:@"GMT"];
        NSTimeZone* destinationTimeZone = [NSTimeZone localTimeZone];
        NSInteger sourceGMTOffset = [sourceTimeZone secondsFromGMTForDate:sourceDate];
        NSInteger destinationGMTOffset = [destinationTimeZone secondsFromGMTForDate:sourceDate];
        NSTimeInterval interval = destinationGMTOffset - sourceGMTOffset;
        NSDate* destinationDate = [[NSDate alloc] initWithTimeInterval:interval sinceDate:sourceDate];
        NSDateFormatter* dateFormat = [[NSDateFormatter alloc] init];
        [dateFormat setTimeZone:[NSTimeZone systemTimeZone]];
        [dateFormat setDateFormat:@"YYYY/MM/dd--HH:mm:ss"];
        NSString* localTime = [dateFormat stringFromDate:destinationDate];
        NSLog(@"localTime:%@", localTime);

I tried with this code

Upvotes: 0

Views: 95

Answers (2)

Andolasoft Inc
Andolasoft Inc

Reputation: 1296

Just convert the server time to UTC time, then convert to local country time. Just write a separate method for this

 +(NSString*)convertLocaleTimeToChatTimeStampWithDateStr:(NSString  *)strDate
{
NSDateFormatter *df = [DateHelper getDefaultTimeFormatter];
[df setDateFormat:@"yyyy-MM-dd'T'HH:mm:ss'Z'"];
[df setTimeZone:[NSTimeZone timeZoneWithAbbreviation:@"UTC"]];
NSDate *date = [df dateFromString:strDate];
[df setDateFormat:@"dd MMM, hh:mm a"];
[df setTimeZone:[NSTimeZone localTimeZone]];
return [df stringFromDate:date];
}

+(NSDateFormatter*)getDefaultTimeFormatter
{
NSDateFormatter *df = [NSDateFormatter new];
[df setDateStyle:NSDateFormatterNoStyle];
[df setTimeStyle:NSDateFormatterShortStyle];
return df;
}

hope this will solve your problem. Thanks

Upvotes: 2

Anirban iOS
Anirban iOS

Reputation: 977

It is better to use server timestamp. After getting timestamp convert it according to timezone

Upvotes: 0

Related Questions