我在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;
}
}
答案 0 :(得分:2)
错误:
当您从doubleValue
中取timestampString
时,它应该将字符串的一部分转换为double
,这将只是2015年。然后您创建一个{{ 1}}在NSDate
之后的2015秒。一小时是3600秒,半小时1800秒,所以午夜后大约33分钟的时间看似合理。
怎么做:
创建01-01-1970 00:00:00
并进行设置,使其与查询中的内容相匹配。例如:
NSDateFormatter