2016-05-13 20 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)で両方の時間を変換します。差を計算し、その差をすべての人に表示します。これはあなたがUTC時間であなたの時間を管理する場合、それは良くなる:)

1

役立つ

希望。

作成時にUTC時間で作成時刻を保存し、フェッチしているときにUTC時刻を現地時間に変換して現在の時刻から過去を計算します。地元の時間帯で敬意を表します。詳細情報については

Convert date in to UTC Format

関連する問題