2016-12-26 113 views
4

嘿,所有,快速獲取特定日期和時間的UTC時間?

我有一個特定的日期&從iOS中的datepicker中選擇的時間。我想將這個日期&時間轉換爲UTC時間。我已經使用了下面的函數。

func get_Date_time_from_UTC_time(string : String) -> String { 

    let dateformattor = DateFormatter() 
    dateformattor.dateFormat = "yyyy-MM-dd HH:mm:ss" 
    dateformattor.timeZone = NSTimeZone.init(abbreviation: "UTC") as TimeZone! 
    let dt = string 
    let dt1 = dateformattor.date(from: dt as String) 
    dateformattor.dateFormat = "yyyy-MM-dd HH:mm:ss ZZZ" 
    dateformattor.timeZone = NSTimeZone.local 
    return dateformattor.string(from: dt1!) 
    } 

我的位置在印度。所以當我通過時間像2016-12-26 09:53:45那麼它給我的UTC時間爲2016-12-26 15:23:00 +0530。現在,當我在谷歌搜索UTC時間,它顯示我的時間爲4:32 AM 26 december。請告訴我爲什麼這樣的差異&我做對了嗎?

回答

1

能否請您嘗試使用下面的代碼: 因爲按我的理解,你應該先提供你的本地時區的日期轉換爲本地,然後它會轉換成UTC:

func get_Date_time_from_UTC_time(string : String) -> String { 

    let dateformattor = DateFormatter() 
    dateformattor.dateFormat = "yyyy-MM-dd HH:mm:ss" 
    dateformattor.timeZone = NSTimeZone.local 
    let dt = string 
    let dt1 = dateformattor.date(from: dt as String) 
    dateformattor.dateFormat = "yyyy-MM-dd HH:mm:ss ZZZ" 
    dateformattor.timeZone = NSTimeZone.init(abbreviation: "UTC") as TimeZone! 
    return dateformattor.string(from: dt1!) 
    } 

我取代的timeZone code.Check並讓我知道如果不解決

+0

奇怪的兩個答案有完全一樣的代碼相同的變量與秒同步化 –

+0

是..但是你可以檢查答案:) –

1

這是因爲你正在處理參數中傳遞的日期UTC時區,並要求它轉換爲本地時區。相反,你的意思相反。

func get_Date_time_from_UTC_time(string : String) -> String { 

    let dateformattor = DateFormatter() 
    dateformattor.dateFormat = "yyyy-MM-dd HH:mm:ss" 
    dateformattor.timeZone = NSTimeZone.local 
    let dt = string 
    let dt1 = dateformattor.date(from: dt as String) 
    dateformattor.dateFormat = "yyyy-MM-dd HH:mm:ss ZZZ" 
    dateformattor.timeZone = NSTimeZone.init(abbreviation: "UTC") as TimeZone! 
    return dateformattor.string(from: dt1!) 
} 
+0

奇怪的兩個答案有完全一樣的代碼相同的變量與秒同步化 –

+0

燁的時候, 13秒的差距。 –