2016-03-09 23 views
0

我正在存儲一條記錄,並且此記錄的附加日期爲pumpTimeNSDate獲取NSDate以秒爲單位顯示另一個時區的日期從GTT

如果創建此記錄的設備與加載記錄的設備放置在不同的時區,加載記錄的設備顯示的日期與創建該設備的設備顯示的日期不同記錄。我希望他們都顯示相同的日期。

我知道這是因爲NSDateFormatter()考慮到它與GMT的距離而調整NSDate(這只是時間的參考)到用戶當前時區。

如何獲取在不同時區加載記錄的設備,以顯示在創建記錄的設備上顯示的設備?

注意:originTimeOffsetObject存儲距離GMT創建記錄的設備有多遠。

if let pumpTimeNSDate = objects[indexPath.row].objectForKey("pumpTimeNSDate") as? NSDate { 

       let formatter = NSDateFormatter() 
       formatter.dateFormat = "E dd, H:mm" 

       if let originTimeOffsetObject = objects[indexPath.row].objectForKey("originTimeOffset") as? NSTimeInterval 
       { 

       // not sure how to use originTimeOffsetObject 

       } 
       else 
       { 
        // if timeoffset do not exist on DB 
        createdAt = formatter.stringFromDate(pumpTimeNSDate) 
       } 
    } 

回答

1

您創建並將一個NSTimeZone設置到NSDateFormatter上。既然你知道了偏移,您可以:

let dateFormatter = NSDateFormatter() 
dateFormatter.dateStyle = .MediumStyle 
dateFormatter.timeStyle = .MediumStyle 
dateFormatter.timeZone = NSTimeZone(forSecondsFromGMT: 0) // Update to your value 
dateFormatter.stringFromDate(NSDate()) // Display your date 
+1

它的工作原理!謝謝!!! – GuiSoySauce

1

在差異時區的日期值仍然是相同的,但它在當前時區格式化。

所以,如果你想顯示時間是相同的每一個地方,你可以轉換時間到NSString與NSDateFormatter和時區是你的默認固定時區。或者你可以把時間存儲在NSString中,在每個地方它都會一樣:)

相關問題