简体   繁体   中英

How to convert a string Date to NSDate in iOS

I googled so many times, but I am not satisfied with given answer. Please anyone can give correct answer what I need.

This is the retrieve date string from DB : 2015-05-27 10:19 (yyyy-MM-dd HH:mm) I want to convert into NSDate .

My code is like Below:

 NSString *date_str = @"2015-05-27 10:19";
 NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setDateFormat:@"yyyy-MM-dd HH:mm"];
 NSDate *date = [dateFormat dateFromString:date_str];
 NSLog(@"date == %@",date);

But output is : date == 2015-05-27 04:49:00 +0000

Its showing 04:49:00 time , but my retrieve time is 10:19 .

How can i retrieve perfect time from DB.

Please help out me..

Just convert your date to GMT time like this:-

NSString *date_str = @"2015-05-27 10:19";
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
NSTimeZone *gmt = [NSTimeZone timeZoneWithAbbreviation:@"GMT"];
[dateFormat setTimeZone:gmt];
[dateFormat setDateFormat:@"yyyy-MM-dd HH:mm"];
NSDate *date = [dateFormat dateFromString:date_str];

And the output is :-

date == 2015-05-27 10:19:00 +0000

And to get the date without +0000 , you can store it in NSString directly:-

 NSString *s = [dateFormat stringFromDate:date];

Output :-

2015-05-27 10:19

You are facing the timezone issue with conversion, because server time and local timezone may have difference. So handle this you need to set the timezone to your dateformatter like

[dateFormater setTimeZone:[NSTimeZone timeZoneWithName:@"GMT"]];

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM