date格式在Swift中

我将如何从date转换这个date时间?

从此:2016-02-29 12:24:26
至:2016年2月29日

到目前为止,这是我的代码,它返回一个零值:

let dateFormatter = NSDateFormatter() dateFormatter.dateFormat = "MM-dd-yyyy" dateFormatter.timeZone = NSTimeZone(name: "UTC") let date: NSDate? = dateFormatter.dateFromString("2016-02-29 12:24:26") print(date) 

您必须声明2个不同的NSDateFormatters ,第一个将string转换为NSDate ,第二个以您的格式打印date。
试试这个代码:

 let dateFormatterGet = NSDateFormatter() dateFormatterGet.dateFormat = "yyyy-MM-dd hh:mm:ss" let dateFormatterPrint = NSDateFormatter() dateFormatterPrint.dateFormat = "MMM dd,yyyy" let date: NSDate? = dateFormatterGet.dateFromString("2016-02-29 12:24:26") print(dateFormatterPrint.stringFromDate(date!)) 

Swift 3与新的Date对象,而不是NSDate

 let dateFormatterGet = DateFormatter() dateFormatterGet.dateFormat = "yyyy-MM-dd HH:mm:ss" let dateFormatter = DateFormatter() dateFormatter.dateFormat = "MMM dd,yyyy" let date: Date? = dateFormatterGet.date(from: "2017-02-14 17:24:26") print(dateFormatter.string(from: date!)) 

编辑: mitul-nakumbuild议后

迅速3

 let date : Date = Date() let dateFormatter = DateFormatter() dateFormatter.dateFormat = "MMM dd, yyyy" let todaysDate = dateFormatter.string(from: date) 

Swift 4和Xcode 9

 let dateFormatter = DateFormatter() dateFormatter.dateStyle = .medium dateFormatter.timeStyle = .none dateFormatter.locale = Locale(identifier: "en_US") print(dateFormatter.stringFromDate(date)) // Jan 2, 2001 

当你想要本地化您的应用程序时,这也很有帮助。 语言环境(标识符:)使用ISO 639-1代码 。 另请参阅Apple文档

要将2016-02-29 12:24:26转换为date,请使用这个date格式化程序:

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

编辑:为了得到输出2016年2月29日使用这个date格式化程序:

 let dateFormatter = NSDateFormatter() dateFormatter.dateFormat = "MMM dd, yyyy" 

迅速3

 func dataFormat(dataJ: Double) -> String { let dateFormatter = DateFormatter() dateFormatter.dateStyle = .long dateFormatter.timeStyle = .none let date = Date(timeIntervalSince1970: dataJ) return (dataJ != nil) ? "Today, \(dateFormatter.string(from: date))" : "Date Invalid" } 

Swift 3带有Date扩展

 extension Date { func string(with format: String) -> String { let dateFormatter = DateFormatter() dateFormatter.dateFormat = format return dateFormatter.string(from: self) } } 

那么你可以这样使用它:

 let date = Date() date.string(with: "MMM dd, yyyy") 

迅速 – 3.0

  func getFormattedDate(string: String) -> String{ let dateFormatter = DateFormatter() dateFormatter.dateFormat = "yyyy-MM-dd HH:mm:ss +zzzz" // This formate is input formated . let formateDate = dateFormatter.date(from: string)! dateFormatter.dateFormat = "dd-MM-yyyy" // Output Formated return dateFormatter.string(from: formateDate) } print ("Print :\(self.getFormattedDate(string: "\(self.dateSelected)"))") // Output Print :16-04-2017