【问题标题】:Convert date in long format to NSDate in iOS?在iOS中将长格式日期转换为NSDate?
【发布时间】:2015-03-05 10:34:39
【问题描述】:

我得到的日期是“1425551087194”,它是长格式的。我怎样才能将它转换成 NSDate 并显示正常的“mm-dd-yyyy”格式。

我已经尝试了以下代码,并且在这里也添加了输出

方法一:

    NSString * timeStampString =@"1425551087194";
    NSTimeInterval _interval=[timeStampString longLongValue];
    NSDate *date = [NSDate dateWithTimeIntervalSinceNow:_interval];
    NSDateFormatter *_formatter=[[NSDateFormatter alloc]init];
    [_formatter setDateFormat:@"dd.MM.yyyy"];
    NSString *_date=[_formatter stringFromDate:date];
    NSLog(@"%@",_date);

输出是:07.02.47189

方法二:

NSString * timeStampString =@"1425551087194";
NSTimeInterval _interval=[timeStampString longLongValue];
NSDate *date = [NSDate dateWithTimeIntervalSince1970:_interval];
NSDateFormatter *_formatter=[[NSDateFormatter alloc]init];
[_formatter setDateFormat:@"dd.MM.yyyy"];
NSString *_date=[_formatter stringFromDate:date];
NSLog(@"%@",_date);

输出是:08.12.47143

请帮忙 预期输出是当前日期。

【问题讨论】:

  • 您的 timeStamp 以毫秒为单位,但 iOS 只能以秒为单位进行管理(对于 NSTimeInterval 和预期的 dateTimeIntervalSince1970:

标签: ios objective-c timestamp nsdate


【解决方案1】:

试试这个

double getDate=1421112600996; // here replace your value
NSTimeInterval seconds = getDate / 1000;
NSDate *date = [NSDate dateWithTimeIntervalSince1970:seconds];
NSLog(@"ans : %@",date);    // your get answer like  ans :  2015-01-13 01:30:00 +0000

另一次转化

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init] ;
[dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss a"];  // here replace your format dd.MM.yyyy
NSLog(@"result: %@", [dateFormatter stringFromDate:date]);
result: 2015-01-13 07:00:00 AM

【讨论】:

    【解决方案2】:

    除了这一切似乎都是正确的

    NSTimeInterval _interval=[timeStampString doubleValue]; //use double conversion instead of longlong
     NSDate *date = [NSDate dateWithTimeIntervalSinceNow:_interval/1000];//converting time interval to seconds
    

    【讨论】:

    • 问题是错误的值被分配给NSTimeInterval,这是一个双值......!
    • 您还需要将该值除以1000.0,因为NSTimeIntervals 测量的是秒,而不是毫秒。
    【解决方案3】:
    NSString * timeStampString =@"1304245000";
    NSTimeInterval _interval=[timeStampString doubleValue];
    NSDate *date = [NSDate dateWithTimeIntervalSince1970:_interval];
    NSDateFormatter *_formatter=[[NSDateFormatter alloc]init];
    [_formatter setDateFormat:@"dd.MM.yyyy"];
    NSString *_date=[_formatter stringFromDate:date];
    

    【讨论】:

      猜你喜欢
      • 2016-09-15
      • 1970-01-01
      • 2015-06-06
      • 1970-01-01
      • 2018-01-28
      • 1970-01-01
      • 2010-12-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多