首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在ios中将数据从毫秒格式转换为正常格式

在ios中将数据从毫秒格式转换为正常格式
EN

Stack Overflow用户
提问于 2014-01-11 10:34:16
回答 3查看 2.8K关注 0票数 0

我从数据库中得到的数据是毫秒格式的,我正在将该日期转换为正常的日期format.But,它返回错误的date.Once,请给我ios中的解决方案

以毫秒为单位的日期为1385856000000。

转换后的日期,我得到了10/26/1970。

但实际日期是2013年1月12日。

我使用的代码是

代码语言:javascript
运行
复制
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"];
EN

回答 3

Stack Overflow用户

发布于 2014-01-11 10:45:34

您的secondChangeDob作为int不能使用这样的值,因为int太小,无法保存存储在NSNumber中的值。

NSTimeIntervaldouble类型的,所以你可以试试-

代码语言:javascript
运行
复制
NSTimeInterval timeInSecond = [secondChangeDob doubleValue]/1000.0;

doubleValue. NSNumber有一个方法,它将返回名为的double。上面的代码将secondChangeDob作为一个返回,这样在将结果存储为NSTimeInterval.时不会出现类型转换问题。

票数 6
EN

Stack Overflow用户

发布于 2014-01-11 10:38:35

整数太小,不能容纳1385856000000。

所以这个号码被破坏了

使用,例如没有符号的长的,长的,或者只是双倍的

票数 2
EN

Stack Overflow用户

发布于 2014-01-11 11:59:08

你可以这样做:

NSDate *myDate = NSDate DateWithTimeIntervalSinc1970:1385856000000;

dateWithTimeIntervalSinceReferenceDate:1385856000000;NSDate *myDate = NSDate

NSDate *myDate = NSDate dateWithTimeIntervalSinceNow:1385856000000;

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21061210

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档