yyyy-MM-dd 格式的 NSDate

NSDate with yyyy-MM-dd format

我有这个日期2015-11-23 05:00:00 +0000

let dateFormatter = NSDateFormatter()
dateFormatter.dateFormat = "yyyy-MM-dd HH:mm:ss"

var dateString = dateFormatter.stringFromDate(date)
dateString = dateString.substringToIndex(11)
println("dateString \(dateString)") --> `2015-11-23` -> i need this but in NSDate instead String

dateFormatter.dateFormat = "yyyy-MM-dd"

let newDate = dateFormatter.dateFromString(dateString)
println("newDate \(newDate)") ---> `2015-01-23 05:11:00 +0000`?????

我需要最终值是一个 NSDate 以发送到 api

似乎没有意义,但是在Google日历中API需要完全忽略小时,只发送yyyy-MM-dd来判断事件是否是全天。而这个 API 只允许日期格式。

Tool

您不能从 NSDate 中删除时间而只保留日期,因为 NSDate 没有这种区分的概念。根据 Apple 文档:

NSDate objects encapsulate a single point in time, independent of any particular calendrical system or time zone.

试试这个:

只需删除以下行:

dateString = dateString.substringToIndex(11)

并使用:

dateFormatter.dateFormat = "yyyy-MM-dd"
let newDate = dateFormatter.dateFromString(dateString)
println("newDate \(newDate)")