首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >排序日期数组orderedAscending date

排序日期数组orderedAscending date
EN

Stack Overflow用户
提问于 2019-11-11 11:40:43
回答 3查看 241关注 0票数 1

我正试图按升序排序日期。我能够以"MM/dd/yyyy"格式解决日期问题,但如果更改为此格式的"dd mmm yyyy",则会出现错误。

这行得通

代码语言:javascript
运行
复制
var dateArray = [Date]()

let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "MM/dd/yyyy"

dateArray.append(dateFormatter.date(from: "09/04/2016")!)
dateArray.append(dateFormatter.date(from: "01/01/2000")!)
dateArray.append(dateFormatter.date(from: "12/12/1903")!)
dateArray.append(dateFormatter.date(from: "04/23/2222")!)
dateArray.append(dateFormatter.date(from: "08/06/1957")!)
dateArray.append(dateFormatter.date(from: "11/11/1911")!)
dateArray.append(dateFormatter.date(from: "02/05/1961")!)

dateArray.sort { (date1, date2) -> Bool in
    return date1.compare(date2) == ComparisonResult.orderedAscending
}

for date in dateArray {
    print(dateFormatter.string(from: date))
}

但这不是

代码语言:javascript
运行
复制
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "dd mmm yyyy"

dateArray.append(dateFormatter.date(from:"01 Mar 2017")!)
dateArray.append(dateFormatter.date(from: "03 Feb 2017")!)
dateArray.append(dateFormatter.date(from: "15 Jan 1998")!)

dateArray.sort { (date1, date2) -> Bool in
    return date1.compare(date2) == ComparisonResult.orderedAscending
}

for date in dateArray {
    print(dateFormatter.string(from: date))
}
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2019-11-11 11:45:28

您需要MMM isntead of mmm

代码语言:javascript
运行
复制
dateFormatter.dateFormat = "dd MMM yyyy"
票数 1
EN

Stack Overflow用户

发布于 2019-11-11 11:46:31

使用"MMM“代替"mmm"

MMM是一个月的简称,m, mm是几分钟的

请查看本网站,https://nsdateformatter.com将有助于了解NSDateFormatter

代码语言:javascript
运行
复制
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "dd MMM yyyy"

dateArray.append(dateFormatter.date(from:"01 Mar 2017")!)
dateArray.append(dateFormatter.date(from: "03 Feb 2017")!)
dateArray.append(dateFormatter.date(from: "15 Jan 1998")!)

dateArray.sort { (date1, date2) -> Bool in
    return date1.compare(date2) == ComparisonResult.orderedAscending
}

for date in dateArray {
    print(dateFormatter.string(from: date))
}
票数 3
EN

Stack Overflow用户

发布于 2019-11-11 11:46:43

只需将格式从小写"mmm“改为大写"MMM",如下所示:

代码语言:javascript
运行
复制
var dateArray = [Date]()

let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "dd MMM yyyy"

dateArray.append(dateFormatter.date(from:"01 Mar 2017")!)
dateArray.append(dateFormatter.date(from: "03 Feb 2017")!)
dateArray.append(dateFormatter.date(from: "15 Jan 1998")!)

dateArray.sort { (date1, date2) -> Bool in
    return date1.compare(date2) == ComparisonResult.orderedAscending
}

for date in dateArray {
    print(dateFormatter.string(from: date))
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58800659

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档