如何解析";MongoDB日期时间(ISO日期)“;截至iOS日期(swift和OBJECT-c)
如何在iOS上将“MongoDB日期时间(ISO日期)”解析为NSDate(swift和objective-c) 这是json结果:如何解析";MongoDB日期时间(ISO日期)“;截至iOS日期(swift和OBJECT-c),ios,mongodb,datetime,Ios,Mongodb,Datetime,如何在iOS上将“MongoDB日期时间(ISO日期)”解析为NSDate(swift和objective-c) 这是json结果: { "mongodate" : "2015-06-11T14:16:56.643Z" } 我也回答了这个问题。Swift func stringToDate(date:String) -> NSDate { let formatter = NSDateFormatter() // Format 1 formatter.dateFo
{
"mongodate" : "2015-06-11T14:16:56.643Z"
}
我也回答了这个问题。Swift
func stringToDate(date:String) -> NSDate {
let formatter = NSDateFormatter()
// Format 1
formatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ss.SSSZ"
if let parsedDate = formatter.dateFromString(date) {
return parsedDate
}
// Format 2
formatter.dateFormat = "yyyy-MM-dd'T'HH:mm:SSSZ"
if let parsedDate = formatter.dateFromString(date) {
return parsedDate
}
// Couldn't parsed with any format. Just get the date
let splitedDate = date.componentsSeparatedByString("T")
if splitedDate.count > 0 {
formatter.dateFormat = "yyyy-MM-dd"
if let parsedDate = formatter.dateFromString(splitedDate[0]) {
return parsedDate
}
}
// Nothing worked!
return NSDate().toLocalTime()
}
目标-C
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setDateFormat:@"yyyy-MM-dd'T'HH:mm:ss.SSSZ"];
NSDate *date = [dateFormat dateFromString:@"2015-06-11T14:16:56.643Z"];
格式:
Swift 3更新@fatihyildizhan的答案:
func stringToDate(date: String) -> Date {
let formatter = DateFormatter()
// Format 1
formatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ss.SSSZ"
if let parsedDate = formatter.date(from: date) {
return parsedDate
}
// Format 2
formatter.dateFormat = "yyyy-MM-dd'T'HH:mm:SSSZ"
if let parsedDate = formatter.date(from: date) {
return parsedDate
}
// Couldn't parsed with any format. Just get the date
let splitedDate = date.components(separatedBy: "T")
if splitedDate.count > 0 {
formatter.dateFormat = "yyyy-MM-dd"
if let parsedDate = formatter.date(from: splitedDate[0]) {
return parsedDate
}
}
// Nothing worked!
return Date()
}
从iOS 10+开始,现在有一个
ISO8601数据格式化程序
然而。。。它不处理有时从MongoDB日期字符串获得的十进制秒数,下面是一个简单的解决方法:
func stringToDate(date: String) -> Date {
let formatter = DateFormatter()
// Format 1
formatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ss.SSSZ"
if let parsedDate = formatter.date(from: date) {
return parsedDate
}
// Format 2
formatter.dateFormat = "yyyy-MM-dd'T'HH:mm:SSSZ"
if let parsedDate = formatter.date(from: date) {
return parsedDate
}
// Couldn't parsed with any format. Just get the date
let splitedDate = date.components(separatedBy: "T")
if splitedDate.count > 0 {
formatter.dateFormat = "yyyy-MM-dd"
if let parsedDate = formatter.date(from: splitedDate[0]) {
return parsedDate
}
}
// Nothing worked!
return Date()
}