2017-10-28 188 views
-3

我有一個時區爲String類型,我想在Swift 4中獲取該時區的日期(格式爲dd:mm:yyyy)和時間(格式爲hh:mm:ss)。做這個?從swift4中的時區獲取日期和時間

我見過日曆庫,但我不明白如何看到它來解決我的問題。

+1

順便說一句,而馬塞爾向您介紹如何設置'dateFormat'達到你想要什麼,你應該問自己生成的字符串的目的是什麼。例如,如果它用於與Web服務交換或保存在數據庫中,則應設置'dateFormat',但還要指定UTC的'en_US_POSIX'和'timeZone'的'locale'。但是如果它是用UI顯示的,你不應該使用'dateFormat',而應該使用'dateStyle'和'timeStyle',所以日期和時間以用戶的首選格式顯示,而不是你的。例如。所以美國用戶可以看到2017年10月28日,但英國用戶可以看到2017年10月28日。 – Rob

+0

https://stackoverflow.com/a/28347285/2303865 –

回答

2
let dateFormatter = DateFormatter() 
dateFormatter.dateFormat = "dd:MM:yyy hh:mm:ss" 

let timeZone = TimeZone(identifier: "Europe/Amsterdam") 

dateFormatter.timeZone = timeZone 

dateFormatter.string(from: Date()) 

雖然,我認爲格式"dd-MM-yyyy HH:mm:ss"似乎更正確。話說回來;在分析自定義日期格式時,應該使用設置dateFormat來設置格式。在格式化要顯示給用戶的日期時,應該使用用戶期望的日期格式(在默認系統區域設置中)。要做到這一點,你應該使用dateStyletimeStyle

dateFormatter.dateStyle = .medium 
print(dateFormatter.string(from: Date())) // prints "Oct 28, 2017" 

dateFormatter.dateStyle = .medium 
dateFormatter.timeStyle = .medium 
print(dateFormatter.string(from: Date())) // prints "Oct 28, 2017 Oct 28, 2017 at 11:19:13 PM"