首页 文章

Swift:将开始日期和结束日期格式化为单个字符串

提问于
浏览
0

我有这两个日期的字符串格式:

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 有一种简单的方法吗?

是否有一个受欢迎的吊舱可以帮助解决这个问题?

完成此格式化的最佳做法是什么?

1 回答

  • 0

    这是我的答案:

    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)
        }
    
    }
    

相关问题