簡體   English   中英

Swift:將開始日期和結束日期格式化為單個字符串

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM