首頁  >  問答  >  主體

ios - 后台给的时间戳 4s上显示的是1970.1.14 而5s上是正确时间2016.3.5。

4s是7.1
5s是9.2
百度找不到答案,感觉是系统问题,下面是代码

NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateStyle:NSDateFormatterMediumStyle];
[formatter setTimeStyle:NSDateFormatterShortStyle];
NSDate *confromTimesp = [NSDate dateWithTimeIntervalSince1970:[self.appointmentServiceTime integerValue]/1000];
[formatter setDateFormat:@"YYYY.MM.dd"];
NSString *str = [formatter stringFromDate:confromTimesp];

我又用模拟器测试了一下,发现存在同样的问题,也就是说跟手机型号有关,系统版本无关,请问如何适配?
PHP中文网PHP中文网2741 天前298

全部回覆(3)我來回復

  • 怪我咯

    怪我咯2017-04-17 17:39:46

    你把 appointmentServiceTime 的值寄一下。 appointmentServiceTime 的值发一下。

    应该是你[self.appointmentServiceTime integerValue]这个的问题,
    换成doubleValue就都一样了。
    应该是4s上integerValue是int_32,
    而是5s上integerValue是int_64,
    所以你的1457107200000
    應該是你[self.appointmentServiceTime integerValue]這個的問題,

    換成doubleValue就都一樣了。 🎜應該是4s上integerValue是int_32,🎜而是5s上integerValue是int_64,🎜所以你的1457107200000這個值是大於32位int值的範圍的。 🎜所以4s上有問題。 🎜

    回覆
    0
  • PHPz

    PHPz2017-04-17 17:39:46

    你直接給解析成Y-m-d H:i:s 給客戶端不就行了

    回覆
    0
  • 巴扎黑

    巴扎黑2017-04-17 17:39:46

    請參考這裡:

    http://www.henishuo.com/ios-timestamp-date-converted/

    寫了一個擴展,在開發中常這樣使用的

    回覆
    0
  • 取消回覆