如何在 iOS 中将字符串 Date 转换为 NSDate

How to convert a string Date to NSDate in iOS

我用谷歌搜索了很多次,但我对给定的答案不满意。请任何人都可以给出我需要的正确答案。

这是从数据库中检索的日期字符串:2015-05-27 10:19 (yyyy-MM-dd HH:mm) 我想转换成 NSDate.

我的代码如下:

 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);

但输出是:date == 2015-05-27 04:49:00 +0000

它显示 04:49:00 时间,但我的检索时间是 10:19.

如何从数据库中检索完美时间。

请帮帮我..

只需像这样将您的日期转换为 GMT 时间:-

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];

输出是:-

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

而要获取不带+0000的日期,可以直接存入NSString:-

 NSString *s = [dateFormat stringFromDate:date];

输出:-

2015-05-27 10:19

您在转换时遇到了时区问题,因为服务器时间和当地时区可能存在差异。所以处理这个你需要将时区设置为你的日期格式化程序,如

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