Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/github/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 转换后,NSDate的日期为空_Ios_Nsdateformatter - Fatal编程技术网

Ios 转换后,NSDate的日期为空

Ios 转换后,NSDate的日期为空,ios,nsdateformatter,Ios,Nsdateformatter,我需要将字符串转换为日期,然后将其预设在UILabel中。当我像下面这样做时,我得到空字符串,UILabel也是空的。这个代码有什么问题 NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init]; [dateFormat setDateFormat:@"MMMM dd, YYYY HH:mm:ss"]; NSDate *dateFromString; dateFromString = [dateFormat dateFrom

我需要将字符串转换为日期,然后将其预设在UILabel中。当我像下面这样做时,我得到空字符串,UILabel也是空的。这个代码有什么问题

NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
 [dateFormat setDateFormat:@"MMMM dd, YYYY HH:mm:ss"];

 NSDate *dateFromString;
 dateFromString = [dateFormat dateFromString:[tmpDevice valueForKey:@"date"]]; //This string is from array of object and is not null

     NSString *stringFromDate  = [dateFormat stringFromDate:dateFromString];

     NSLog(@"%@", stringFromDate); // here is null

     [cell.dateOfAddedCell setText: stringFromDate]; // and here also is null

根据您的注释,您有一个表示毫秒的字符串。首先需要将该字符串转换为
NSDate
。然后可以将
NSDate
格式化为所需字符串

你忽略了提到你的价值的时代,但它似乎是基于标准的1970年1月1日的时代

NSString *millisString = tmpDevice[@"data"];
NSTimeInterval seconds = [miliisString doubleValue] / 1000;
NSDate *date = [NSDate dateWithTimeIntervalSince1970:seconds];

NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setDateFormat:@"MMMM dd, yyyy HH:mm:ss"]; // notice is yyyy, not YYYY
NSString *stringFromDate = [dateFormat stringFromDate:date];
NSLog(@"%@", stringFromDate);

cell.dateOfAddedCell.text = stringFromDate;

尝试替换此行:

dateFromString=[dateFormat dateFromString:[tmpDevice valueForKey:@“date”]

比如:

dateFromString=[NSDate DateWithTimeIntervalencesince1970:[(NSNumber*)[tmpDevice valueForKey:@“date”]intValue]]

您的代码不起作用,因为[tmpDevice valueForKey:@“date”]应返回如下内容:

@“2014年5月25日19:30:00”

但不是:

1406141698811

如果您希望使用该方法:

dateFromString


希望它有意义

您能告诉我们什么是
[tmpDevice valueForKey:@“date”]
吗?将字符串转换为日期,然后将日期转换回相同的字符串有什么意义?这似乎毫无意义。旁注-不要使用年
YYYY
,使用年
yyy
。空值不表示解析字符串时出错吗?这是以毫秒为单位的字符串日期:1406141698811@OwenHartnett没有错误