【问题标题】:Convert the date from Milliseconds format to normal format in ios [duplicate]在ios中将日期从毫秒格式转换为正常格式[重复]
【发布时间】:2014-01-11 10:34:16
【问题描述】:

我正在从数据库中获取毫秒格式的日期。我正在将该日期转换为正常的日期格式。但它返回错误的日期。请在 ios 中给我解决方案

以毫秒为单位的日期是 1385856000000

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

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

我用的是下面的代码

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"];

【问题讨论】:

  • 我建议从数据库中获取日期为NSDate

标签: ios iphone objective-c nsdate milliseconds


【解决方案1】:

您的 secondChangeDob 作为一个 int 将无法使用这样的值,因为 int 太小而无法容纳您的值存储在 NSNumber 中。

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

NSTimeInterval timeInSecond = [secondChangeDob doubleValue]/1000.0;

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

【讨论】:

    【解决方案2】:

    int 太小,无法容纳 1385856000000

    所以号码被损坏了

    使用例如一个 unsigned long long 或只是 double

    【讨论】:

    • 我建议用 NSInteger 替换它。
    • 也不要忘记替换对 intValue 的调用。
    • 我会使用无符号,因为它是一个无符号值
    • 一个 unsigned long 给出警告,它实际上应该是一个 long long
    • 谈到整数类型,int、unsigned int、long、unsigned long 的大小都相同——在 32 位 iOS 设备上为 4 个字节。仅在 int 和 long 不同的 64 位设备上。因此,为了适应这两种架构的值,应该使用“long long”类型或双精度类型之一。
    【解决方案3】:

    你可以这样做:

    NSDate *myDate = [NSDate dateWithTimeIntervalSince1970:1385856000000];

    NSDate *myDate = [NSDate dateWithTimeIntervalSinceReferenceDate:1385856000000];

    NSDate *myDate = [NSDate dateWithTimeIntervalSinceNow:1385856000000];

    【讨论】:

    • 不是答案,也没有帮助;)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-25
    • 1970-01-01
    • 2011-12-18
    • 1970-01-01
    • 2017-06-05
    相关资源
    最近更新 更多