-3
我有一個時區爲String
類型,我想在Swift 4中獲取該時區的日期(格式爲dd:mm:yyyy
)和時間(格式爲hh:mm:ss
)。做這個?從swift4中的時區獲取日期和時間
我見過日曆庫,但我不明白如何看到它來解決我的問題。
我有一個時區爲String
類型,我想在Swift 4中獲取該時區的日期(格式爲dd:mm:yyyy
)和時間(格式爲hh:mm:ss
)。做這個?從swift4中的時區獲取日期和時間
我見過日曆庫,但我不明白如何看到它來解決我的問題。
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
來設置格式。在格式化要顯示給用戶的日期時,應該使用用戶期望的日期格式(在默認系統區域設置中)。要做到這一點,你應該使用dateStyle
和timeStyle
:
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"
順便說一句,而馬塞爾向您介紹如何設置'dateFormat'達到你想要什麼,你應該問自己生成的字符串的目的是什麼。例如,如果它用於與Web服務交換或保存在數據庫中,則應設置'dateFormat',但還要指定UTC的'en_US_POSIX'和'timeZone'的'locale'。但是如果它是用UI顯示的,你不應該使用'dateFormat',而應該使用'dateStyle'和'timeStyle',所以日期和時間以用戶的首選格式顯示,而不是你的。例如。所以美國用戶可以看到2017年10月28日,但英國用戶可以看到2017年10月28日。 – Rob
https://stackoverflow.com/a/28347285/2303865 –