我从数据库中得到的数据是毫秒格式的,我正在将该日期转换为正常的日期format.But,它返回错误的date.Once,请给我ios中的解决方案
以毫秒为单位的日期为1385856000000。
转换后的日期,我得到了10/26/1970。
但实际日期是2013年1月12日。
我使用的代码是
int dobint = [secondChangeDob intValue];
NSTimeInterval timeInSecond = dobint/1000;
NSDate *date = [NSDate dateWithTimeIntervalSince1970:timeInSecond];
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"MM/dd/yyyy"];
NSString *formattedDate=[formatter stringFromDate:date];
NSLog(@"Formatted Date : %@",formattedDate);
NSUserDefaults *dateDef = [NSUserDefaults standardUserDefaults];
[dateDef setObject:formattedDate forKey:@"bDATE"];发布于 2014-01-11 10:45:34
您的secondChangeDob作为int不能使用这样的值,因为int太小,无法保存存储在NSNumber中的值。
NSTimeInterval是double类型的,所以你可以试试-
NSTimeInterval timeInSecond = [secondChangeDob doubleValue]/1000.0;doubleValue. NSNumber有一个方法,它将返回名为的double。上面的代码将secondChangeDob作为一个双返回,这样在将结果存储为NSTimeInterval.时不会出现类型转换问题。
发布于 2014-01-11 10:38:35
整数太小,不能容纳1385856000000。
所以这个号码被破坏了
使用,例如没有符号的长的,长的,或者只是双倍的
发布于 2014-01-11 11:59:08
你可以这样做:
NSDate *myDate = NSDate DateWithTimeIntervalSinc1970:1385856000000;
和
dateWithTimeIntervalSinceReferenceDate:1385856000000;NSDate *myDate = NSDate
和
NSDate *myDate = NSDate dateWithTimeIntervalSinceNow:1385856000000;
https://stackoverflow.com/questions/21061210
复制相似问题