我从一个Web服务所在的日期字符串格式,包括时区的格式,你可以看到下面的接收JSON数据:如何将包含时区信息的NSString转换为NSDate?
{
currencyName = EUR;
itemID = 101064027138011;
price = "6.95";
priceIncTAX = 1;
validFromDate = "2016-11-03T00:00:00";
validToDate = "2020-01-01T00:00:00";
}
当我尝试转换包含时区到NSDate的返回值的字符串总是nil/null,如果我手动发送没有时区信息的字符串i,e @“2016-11-03”,那么转换工作正常,但结果日期包括时区偏移等,并且不遵守我的dateFormatter
我用下面的代码来显示手头的挑战
NSString *validTo = @"2016-11-03";
NSString *validFrom = @"2020-11-03T00:00:00";
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setDateFormat:@"YYYY-MM-dd"];
NSDate *validToDate = [dateFormat dateFromString:validTo];
NSDate *validFromDate = [dateFormat dateFromString:validFrom];
if([NWTillHelper isDebug] == 1) {
NSLog(@"WebServices:fetchPriceList:validToDate: >>>> %@ <<<<", validToDate);
NSLog(@"WebServices:fetchPriceList:validFromDate: %@", validFromDate);
}
的(1)调试告诉我,如果没有TZ信息串正常工作(除了不遵守我的dateFormatter),但与TZ信息字符串没有。
我怎么能转换包含TZ信息到的NSDate一个字符串,为什么不坚持我的dateFormatter,当我在一个字符串发送没有时区信息。
016-11-27 12:09:22.194 NWMobileTill[4275:235671] WebServices:fetchPriceList:validToDate: >>>> 2016-11-02 16:00:00 +0000 <<<<
2016-11-27 12:09:22.194 NWMobileTill[4275:235671] WebServices:fetchPriceList:validFromDate: (null)
您的JSON日期字符串中没有时区信息。 – rmaddy
你真的认为格式'YYYY-MM-dd'实际上与字符串'2020-11-03T00:00:00'匹配吗?他们需要匹配。并且不要使用'YYYY',使用'yyyy'一年。 – rmaddy