2016-05-13 96 views
0

在y應用程序中,用戶可以從不同時區發佈帖子,我的任務是向他們顯示發佈帖子後多少分鐘或幾小時。但目前只能正確顯示我的時區,而不適用於其他時區。如何在ios中顯示不同時區的相同時差

是我到目前爲止執行:

NSTimeInterval timestamp = [data.createdDate longLongValue]; 
    NSDate *date = [NSDate dateWithTimeIntervalSince1970:timestamp]; 

    NSTimeZone* sourceTimeZone = [NSTimeZone timeZoneWithAbbreviation:@"GMT"]; 
    NSTimeZone* destinationTimeZone = [NSTimeZone systemTimeZone]; 

    NSInteger sourceGMTOffset = [sourceTimeZone secondsFromGMTForDate:date]; 
    NSInteger destinationGMTOffset = [destinationTimeZone secondsFromGMTForDate:date]; 
    NSTimeInterval interval = destinationGMTOffset - sourceGMTOffset; 





    date = [[NSDate alloc] initWithTimeInterval:interval sinceDate:date]; 

date.createdDate時間戳值從服務器的到來。 服務器旁邊的時間是我的時區。

+0

您有在其他時區2時區,這就是爲什麼有差別的日期。爲什麼不在兩個日期中使用相同的時區? – rishi

+0

我不明白這是怎麼工作的! @rishi – Fay007

+0

目前發生的情況是,您的源時區始終爲GMT,並且目標時區正在根據設備設置進行更改,但當目標時區不同時,它將有不同的時間。您可以嘗試將兩個時區都設置​​爲systemTimeZone,即將日期從服務器轉換爲系統時區,然後獲取時差。 – rishi

回答

1

您應該使用標準(通用)時區將其從任何目的地發送到服務器。例如,使用gmt or utc作爲標準時區。現在有人發佈了gmt - 11:00時區的內容,有人發佈了gmt + 10 : 00時區的內容,然後首先在公共時區中轉換時間(以gmt或utc)。然後計算差異,然後向每個人顯示差異。

希望這將有助於:)

1

這將是更好,如果你管理與UTC時間你的時間。

創建時存儲UTC時間的創建時間,當您獲取UTC時間時,將其轉換爲當地時間並計算當前時間的過去時間。您將獲得當地時區的尊重時間。

欲瞭解更多信息: Convert date in to UTC Format

相關問題