2016-11-26 132 views
0

我有一個來自UIControl的日期。我獲得日期作爲字符串,如06-12-2016 01:25 PM。現在我想將它轉換爲2016-12-06 13:25:00的格式我已經嘗試了下面的代碼t這樣做,但它只是給了我ex錯誤的日期。 2016-12-06 18:55:00。我爲此使用了以下代碼:將12小時日期格式轉換爲24小時格式,反之亦然?

func converStingToDate(str_date:String)->String 
    { 

    let dateFormatter = DateFormatter() 
    dateFormatter.dateFormat = "dd-MM-yyyy H:mm a" 
    let date = dateFormatter.date(from: str_date) 
    dateFormatter.dateFormat = "yyyy-MM-dd HH:mm:ss" 
    return dateFormatter.string(from: date!) 

    } 

請給我一個更好的代碼。另外如果你們可以幫助我理解所有這些日期格式化概念是如何完成的?

回答

3

代碼是正確的,日期是正確的(儘管你應該使用h 12小時小時)。

您的時區爲UTC+0530print()顯示日期UTC

如果需要print正確的本地時間格式化的時區設置爲UTC:

dateFormatter.timeZone = TimeZone(abbreviation: "UTC")` 
+1

轉換本地時間字符串到不同的本地時間字符串不需要設置的格式化任何特定的時區。唯一需要做的改變是通過將'H'改爲'h'來修正第一個日期格式。一旦完成,代碼工作正常。如果有的話,格式器的區域設置應該設置爲'en_US_POSIX',以確保沒有問題,因爲在設備上設置24小時的時間不會妨礙。 – rmaddy

+0

我仍然能夠轉換成正確的格式 – Techiee

相關問題