[英]Swift: Format a a start and end date into a single string
我有兩個日期以字符串格式:
let startDate = "2018-06-14"
let endDate = "2018-06-17"
我想將它們格式化為:
2018年6月14-17日
但是,如果開始日期和結束日期位於不同的月份,則應采用以下格式:
2018年6月29日至7月1日
如果開始日期和結束日期位於不同的年份,則應采用以下格式:
2018年12月29日-2019年1月1日
有使用Swift的本機DateFormatter
做到這一點的簡單方法嗎?
是否有受歡迎的吊艙可以幫助您解決此問題?
完成此格式化的最佳實踐是什么?
這是我的答案:
if let startDate = startDateString.toDate(withFormat: "yyyy-MM-dd"),
let endDate = endDateString.toDate(withFormat: "yyyy-MM-dd") {
let formatter = DateIntervalFormatter()
formatter.dateStyle = .long
formatter.timeStyle = .none
dateLabel.text = formatter.string(from: startDate, to: endDate)
}
和這個擴展名:
extension String {
func toDate(withFormat format: String) -> Date? {
let formatter = DateFormatter()
formatter.dateFormat = format
formatter.locale = Locale(identifier: "en_US_POSIX")
return formatter.date(from: self)
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.