IOS如果转换十三位的时间戳?
PHPz
PHPz 2017-04-17 17:37:57
0
4
456

如果从服务器传回的数据是13位的时间戳 怎么转换为时间呢?

PHPz
PHPz

学习是最好的投资!

membalas semua(4)
刘奇

Kami juga menghadapi masalah yang sama Output cap waktu oleh pelayan menggunakan Java (Jersey Jackson) ialah 13 digit, manakala keperluan iOS ialah 10 digit...

Jawapan Stackoverflow ialah: Cap masa Java adalah tepat kepada milisaat, iaitu 13 digit.

Untuk nilainya, nombor itu ialah cap waktu Java standard (digunakan oleh kelas JDK); Unix menyimpan saat, milisaat Java, itulah sebabnya nilainya lebih besar.

Siaran lain menyediakan penyelesaian

Bahagi dengan 1000

Kod sampel adalah seperti berikut:

double timestampval =  [[updates objectForKey:@"timestamp"] doubleValue]/1000;
NSTimeInterval timestamp = (NSTimeInterval)timestampval;
NSDate *updatetimestamp = [NSDate dateWithTimeIntervalSince1970:timestamp];
伊谢尔伦
    NSString * timeStampString = @"1423189125874";
    NSDate *date = [NSDate dateWithTimeIntervalSince1970:[timeStampString doubleValue] / 1000];
    NSLog(@"%f", ([date timeIntervalSince1970] * 1000.0));

Output

2015-02-06 10:51:35.323 iOSTest[4359:67092] 1423189125874.000000

NSTimeInterval adalah jenis berganda, jadi pembahagian dengan 1000 tidak akan kehilangan ketepatan.

左手右手慢动作
NSString * timeStampString = @"1423189125873";
NSTimeInterval _interval=[[timeStampString substringToIndex:10] doubleValue];
NSDate *date = [NSDate dateWithTimeIntervalSince1970:_interval];
NSLog(@"%@", date);

======================

Tempah milisaat

NSString * timeStampString = @"1423189125873";
NSTimeInterval _interval=[timeStampString doubleValue] / 1000.0;
NSDate *date = [NSDate dateWithTimeIntervalSince1970:_interval];
NSDateFormatter *objDateformat = [[NSDateFormatter alloc] init];
[objDateformat setDateFormat:@"yyyy-MM-dd HH:mm:ss.SSS"];
NSLog(@"%@", [objDateformat stringFromDate: date]);
小葫芦

Dibahagi dengan 1000

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan