我在EST時區時間,它使用了MySQL服務器上的NOW()函數來完成。由於我的服務器位於EST,因此存儲的時間位於EST中。當我從iPhone上的應用程序中檢索它時,我需要將其顯示在用戶的正確時區中。我怎麼做?如何將時間轉換爲iPhone設備的時區?
20
A
回答
3
我認爲這取決於你的意思是什麼EST - 如果你的意思是東海岸的美國,然後在一般情況下,比UTC 5小時(但不佔夏令時),這應該給你04:00 EST。儘可能避免使用縮寫,因爲它們是不明確的,例如, EST是美洲/底特律和澳大利亞/悉尼的縮寫。使用NSTimeZone initWithName將會提供更精確的結果。
Chronos Time Zone Repository提供了一個很好的可讀XML時區數據庫,真正幫助理解時區如何工作(這一切都相當混亂和可改變)。
3
//你可以用下面的函數來轉換日期的時區,你想
+ (NSDate *) convertDate:(NSDate *) date toTimeZone:(NSString *) timeZoneAbbreviation {
NSTimeZone *systemZone = [NSTimeZone systemTimeZone];
NSTimeZone *zoneUTC = [NSTimeZone timeZoneWithAbbreviation:timeZoneAbbreviation];
NSTimeInterval s = [zoneUTC secondsFromGMT];
NSTimeZone *myZone = [NSTimeZone timeZoneWithAbbreviation:[systemZone abbreviationForDate:date]];
NSTimeInterval p = [myZone secondsFromGMT];
NSTimeInterval i = s-p;
NSDate *d = [NSDate dateWithTimeInterval:i sinceDate:date];
return d;
}
//Test case **note** cgUtil is the class this method is written thus change it accordingly
__block NSDate *now = [NSDate date];
NSLog(@"Current time:%@", now);
[[[NSTimeZone abbreviationDictionary] allKeys] enumerateObjectsUsingBlock:^(NSString * abb, NSUInteger idx, BOOL *stop) {
NSLog(@"Time zone abb:%@:Time:%@",abb,[cgUtil convertDate:now toTimeZone:abb]);
}];
相關問題
- 1. 從時區轉換-500時間到設備所在的時區
- 2. 如何將UTC時間轉換爲android中使用GPS時的設備時間?
- 3. iOS將服務器時間轉換爲設備本地時間?
- 4. 將UTC時間戳轉換爲本地設備時間戳
- 5. 將時間戳轉換爲UTC時區
- 6. 將時間和時區轉換爲UTC
- 7. 將Unix時間戳轉換爲時區?
- 8. 將時間戳轉換爲時區
- 9. 的iOS:UTC時區轉換爲設備本地時區
- 10. 如何將時間轉換爲用戶的時區中的Rails
- 11. 如何將時間轉換爲Rails中的特定時區?
- 12. 如何將帶有時區的PostgreSQL時間戳轉換爲DateTime?
- 13. 如何將時間戳轉換爲不同的時區
- 14. 如何將日期時間轉換爲不同的時區?
- 15. 如何將時間戳轉換爲帶有時區的秒數
- 16. 將選定的時間和時區轉換爲設置的時區
- 17. 如何將帶時區的日期時間轉換爲python的UTC時間
- 18. 如何將UTC時間轉換爲瀏覽器本地時區?
- 19. 如何將印度標準時間轉換爲用戶時區
- 20. 如何將UTC從UTC時間轉換爲CEST時區
- 21. 如何將UTC時間轉換爲其他時區(「CST」,「IST」)
- 22. 如何將UTC時間轉換爲模板中的上海+8時區時間?
- 23. 如何將太平洋時區的日期時間轉換爲UTC時間戳?
- 24. 如何將Etc/GMT + 2時區中的時間戳轉換爲unix時間戳?
- 25. 如何將PostgreSQL數據庫的時間戳轉換爲用戶時區時間?
- 26. 如何將日期/時間從一個時區轉換爲另一個時區?
- 27. 如何將日期時間從一個時區轉換爲另一個時區
- 28. 將UTC時間戳轉換爲其他時區特定時間
- 29. JavaScript:使用時區將UTC時間轉換爲本地時間
- 30. 將數據轉換爲設備時區時獲得4小時差異?