iOS 時(shí)間戳在不同時(shí)區(qū)轉(zhuǎn)換問題

一、給定一個(gè)10位時(shí)間戳,轉(zhuǎn)成不同時(shí)區(qū)的日期

//給定一個(gè)時(shí)間戳

NSString?*test =?@"1652861974”;

//轉(zhuǎn)成北京時(shí)區(qū)下的日期

NSDateFormatter?*beijingFormatter = [[NSDateFormatter?alloc]?init];

[beijingFormatter?setDateFormat:@"yyyy-MM-dd HH:mm:ss"];

NSTimeZone?*beijingZone = [NSTimeZone?timeZoneWithAbbreviation:@"GMT+0800"];

[beijingFormatter?setTimeZone:beijingZone];

//轉(zhuǎn)成手機(jī)系統(tǒng)設(shè)置的時(shí)區(qū)(紐約)下的日期

NSDateFormatter?*localFormatter = [[NSDateFormatter?alloc]?init];

[localFormatter?setDateFormat:@"yyyy-MM-dd HH:mm:ss"];

NSTimeZone?*localZone = [NSTimeZone?systemTimeZone];//當(dāng)前手機(jī)設(shè)置的是紐約時(shí)區(qū)

[localFormatter?setTimeZone:localZone];

?NSDate* testDate = [NSDate?dateWithTimeIntervalSince1970:[test?longLongValue]];

NSString* beijingDateString = [beijingFormatter stringFromDate:?testDate];//北京時(shí)區(qū)下的日期字符串:“2022-05-18 16:19:34”

NSString* localTimeString = [localFormatter stringFromDate:?testDate];//換成本地(紐約)時(shí)間:2022-05-18 04:19:34

NSLog(@"服務(wù)器返回北京時(shí)間:%@ 轉(zhuǎn)換成本地時(shí)區(qū)時(shí)間:%@ ",?beijingDateString,?localTimeString);

結(jié)果打?。?b>服務(wù)器返回北京時(shí)間:2022-05-18 16:19:34 轉(zhuǎn)換成本地時(shí)區(qū)時(shí)間:2022-05-18 04:19:34

二、反向驗(yàn)證同一時(shí)刻下世界在不同時(shí)區(qū)的日期返回的時(shí)間戳是相同的:

北京時(shí)區(qū)日期:2022-05-18 16:19:34以上的beijingDateString對(duì)應(yīng)的

紐約時(shí)區(qū)日期:2022-05-18 04:19:34(以上的localTimeString對(duì)應(yīng)的

NSDate?*beiDate = [beijingFormatter?dateFromString:?beijingDateString];

NSTimeIntervalbeiInterval = [beiDate?? timeIntervalSince1970];

NSDate*LocDate = [localFormatter?? dateFromString:?localTimeString];

NSTimeIntervalLocInterval = [LocDate? timeIntervalSince1970];

NSLog(@"原始時(shí)間戳:%@?北京時(shí)區(qū)生成時(shí)間戳:%f??本地時(shí)區(qū)生成時(shí)間戳:%f ",test,(double)beiInterval,(double)?LocInterval);

結(jié)果打印:?原始時(shí)間戳:1652861974? 北京時(shí)區(qū)生成時(shí)間戳:1652861974.000000 ? 本地時(shí)區(qū)生成時(shí)間戳:1652861974.000000?

驗(yàn)證了同一時(shí)刻雖然處于世界不同時(shí)區(qū),但是拿到的時(shí)間戳是一樣的,前提是轉(zhuǎn)成對(duì)應(yīng)時(shí)區(qū)下的日期即NSDateFormatter要設(shè)置對(duì)應(yīng)的時(shí)區(qū)。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容