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