我正在使用NSDateFormatter将NSString转换为NSDate。
例如,如果我的NSString值 2015年6月24日那么它将被转换为 2015-06-23 18:30:00 +0000 ,这是不正确的。
它应该是" 24"而不是" 23"。
我使用下面的代码进行转换。
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"MMM dd,yyyy"];
NSLog(@"%@",[formatter dateFromString:strDate]);
请帮我弄清楚问题。
由于
答案 0 :(得分:3)
这可能会帮助你。添加以下代码。
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
formatter.timeZone = [NSTimeZone timeZoneForSecondsFromGMT:0];
答案 1 :(得分:3)
您的NSDateFormatter
将该值视为本地日期格式(IST,GMT +5:30),然后将其转换为GMT。它将您的价值视为2015年6月24日00:00 am并根据GMT转换18:30 2015年6月23日意味着在实际时间之前5小时30分钟,所以只需添加
[formatter setTimeZone:[NSTimeZone timeZoneWithAbbreviation:@"GMT"]];
它会正常工作。
答案 2 :(得分:1)
添加NSTimeZone
行:
NSString *dateString = @"Jun 24,2015";
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"MMM dd,yyyy "];
dateFormatter.timeZone = [NSTimeZone timeZoneForSecondsFromGMT:0];
NSLog(@"%@",[dateFormatter dateFromString:dateString]);