我有这两个字符串格式的日期:
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
的简单方法
有没有流行的pod可以帮助你做到这一点?
完成这种格式化的最佳实践是什么?
发布于 2018-06-13 04:38:20
这是我的答案:
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)
}
}
https://stackoverflow.com/questions/50825316
复制相似问题