我允許我的用戶能夠使用他們的當地時區隨機選擇日期和時間。我希望能夠以UTC格式將此日期字符串發送到服務器,以便世界各地的其他人可以使用它們的本地時區讀取它。我已經在網上閱讀了很多關於如何將UTC轉換爲當地時間的信息,但並未反過來。我怎樣才能做到這一點?如何將任意時區變成UTC?
編輯:
首先我用的第一個函數取連接字符串與用戶選擇的日期和時間,把它變成一個NSDate的,然後我轉換這個的NSDate成一個UTC字符串。這是實現我的目標的最佳方法嗎?
public class func localTimeZoneStringToDate(string: String) -> NSDate {
let dateFormatter = NSDateFormatter()
dateFormatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ss"
dateFormatter.timeZone = NSTimeZone.localTimeZone()
return dateFormatter.dateFromString(string)!
}
public class func UTCStringFromDate(date: NSDate) -> String {
let dateFormatter = NSDateFormatter()
dateFormatter.timeZone = NSTimeZone(abbreviation: "UTC")
dateFormatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ss"
return dateFormatter.stringFromDate(date)
}
'NSDate'總是存儲在UTC時區的日期和時間 –
你要知道他們的本地日期和時間,他們的時區,並且還具有夏令時他們。從這三個參數你可以計算UTC – Luka
RFC 3339/ISO 8601格式是發送到Web服務的標準。並且,如果用戶設備未使用公曆格式,請記住根據[技術問答1480](https://developer.apple.com/library/ios/qa/qa1480/_index.html)使用'en_US_POSIX'的'locale'日曆。 – Rob