从NSString时间戳返回正确的NSDate

时间:2015-06-15 15:46:55

标签: ios nsdate

我在mysql中有一个表来记录线程存储时的时间戳,但我似乎无法在应用程序上显示正确的时间。

日期([dict objectForKey:@"AT_Date"])会在2015-06-15 15:12:04回来,但我不知道这是否正确,因为我认为应该返回一个很长的数字。转换回本地日期的最终日期总是输出1970-01-01 00:33:35 +0000,这是错误的。为什么会这样?

代码:

if((NSNull *)[dict objectForKey:@"AT_Date"] != [NSNull null]){
                             NSString *timestampString = [dict objectForKey:@"AT_Date"];
                             double timestampDate = [timestampString doubleValue];
                             at_Date = [NSDate dateWithTimeIntervalSince1970:timestampDate];
                             if (counter == 1) {
                                 lastDateForumActivity = timestampString;
                             }
                         }

1 个答案:

答案 0 :(得分:2)

错误:

当您从doubleValue中取timestampString时,它应该将字符串的一部分转换为double,这将只是2015年。然后您创建一个{{ 1}}在NSDate之后的2015秒。一小时是3600秒,半小时1800秒,所以午夜后大约33分钟的时间看似合理。

怎么做:

创建01-01-1970 00:00:00并进行设置,使其与查询中的内容相匹配。例如:

NSDateFormatter