【问题标题】:converting timestamp to nsdate format将时间戳转换为 nsdate 格式
【发布时间】:2011-09-18 10:06:39
【问题描述】:

我想将我的时间戳值 1308031456 转换为 NSDate 格式(在在线 Web 转换中生成值 Tue, 14 Jun 2011 06:04:16 GMT)。如何以编程方式在两者之间进行转换?

【问题讨论】:

    标签: objective-c iphone swift nsdate


    【解决方案1】:

    这是一段代码,可让您将 unix 类型的时间戳转换为格式化日期

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

    这将打印 _date 类似于 05.03.2011

    【讨论】:

      【解决方案2】:

      在 obj c 中

      double timeStamp = 1513330403393;
      NSTimeInterval unixTimeStamp = timeStamp / 1000.0;
      NSDate *exactDate = [NSDate dateWithTimeIntervalSince1970:unixTimeStamp];
      NSDateFormatter* dateFormatter = [[NSDateFormatter alloc] init];
      dateFormatter.dateFormat = @"dd/MM/yyy hh:mm a";
      NSString  *finalate = [dateFormatter stringFromDate:exactDate];
      

      在 Swift 中

      let timeStamp = 1513330403393
      let unixTimeStamp: Double = Double(timeStamp) / 1000.0
      let exactDate = NSDate.init(timeIntervalSince1970: unixTimeStamp)
      let dateFormatt = DateFormatter();
      dateFormatt.dateFormat = "dd/MM/yyy hh:mm a"
      print(dateFormatt.string(from: exactDate as Date))
      

      【讨论】:

      • 请注意,不鼓励仅使用代码回答。总是添加一些解释......例如不使用这样的 cmets - 而是将其放入格式良好的文本中!
      • 现在使用 Date 来快速进行可能是个好主意,也可以代替使用 .init 直接打开 Date(timeIntervalSince1970: unixTimeStamp) 就可以了
      【解决方案3】:

      OBJ - C: 使用dateWithTimeIntervalSince1970:

      NSDate *date = [NSDate dateWithTimeIntervalSince1970:timeStamp];
      

      SWIFT: 使用init(timeIntervalSince1970:)

      let date = NSDate(timeIntervalSince1970:timeStamp)
      

      【讨论】:

      • 取决于时间戳的类型转换。否则你可以这样尝试: NSDate *beginDate = [NSDate dateWithTimeIntervalSince1970:(NSTimeInterval)[[calendarData objectForKey:@"date"] doubleValue]];
      • 我也在快速做同样的事情,但日期错误..我错过了哪一部分。 var transDate: Double =transDict.valueForKey("date") as! Double var tranDate = NSDate(timeIntervalSince1970: transDate) let dateFormatter = NSDateFormatter() dateFormatter.dateStyle = NSDateFormatterStyle.MediumStyle dateFormatter.dateFormat = "EEE, MMM dd, y" dateFormatter.timeZone = NSTimeZone(缩写:"CST") let dateValue = dateFormatter.stringFromDate(tranDate) @KingofBliss
      【解决方案4】:

      【讨论】:

        【解决方案5】:

        您可以使用dateWithTimeIntervalSince1970:方法来转换您拥有的时间戳,即纪元时间。

        NSDate * myDate = [NSDate dateWithTimeIntervalSince1970:1308031456];
        

        【讨论】:

          猜你喜欢
          • 2012-03-19
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2015-09-08
          • 2016-11-26
          • 1970-01-01
          相关资源
          最近更新 更多