我有这个代码在模拟器上完美运行,但在真实设备上它不起作用。
它返回的字符串是nil
,为什么?
-(NSString*)metodoFormatoFecha:(NSString*)cadena{
NSString *trimmedString = [cadena stringByTrimmingCharactersInSet:
[NSCharacterSet whitespaceCharacterSet]];
NSString *newString = [[trimmedString componentsSeparatedByCharactersInSet:[NSCharacterSet newlineCharacterSet]] componentsJoinedByString:@""];
//newString contanain -> 2015-07-28T10:41:01-04:00
NSDateFormatter *dateStringParser = [[NSDateFormatter alloc] init];
[dateStringParser setDateFormat:@"yyyy-MM-dd'T'HH:mm:ss.ZZZZ"];
NSDate *date = [dateStringParser dateFromString:newString];
NSDateFormatter *labelFormatter = [[NSDateFormatter alloc] init];
[labelFormatter setDateFormat:@"yyyy-MM-dd'\n'HH:mm:ss\nZZZZ"];
NSString *FechaConFormato = [labelFormatter stringFromDate:date];
return FechaConFormato;
}
答案 0 :(得分:1)
我想您的设备上安装了AM / PM时间格式(取决于区域设置)。在模拟器上安装了“24h”时间格式。
您应指向正确的区域设置,否则将使用默认区域设置(使用AM / PM时间格式)。
E.g。
#pragma mark - Lazy instantiating
- (NSDateFormatter *)getServerFormatter {
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
_serverFormatter = [NSDateFormatter new];
_serverFormatter.locale = [NSLocale localeWithLocaleIdentifier:@"fr_FR"];
_serverFormatter.dateFormat = @"dd/MM/yyyy HH:mm";
});
return _serverFormatter;
}