我的字符串中的日期如下:10/07/2016
我想像这样转换:10 July 2016
我喜欢这个:
struct NSDateFormatterType {
static let API_FORMAT = "dd/mm/yyyy"
static let DISPLAY_FORMAT = "dd MMMM yyyy"
}
extension NSDate {
class func convertDateDisplayFormat(dateString: String) -> String {
let dateFormatter = NSDateFormatter()
dateFormatter.dateFormat = NSDateFormatterType.API_FORMAT
if let date = dateFormatter.dateFromString(dateString) {
dateFormatter.dateFormat = NSDateFormatterType.DISPLAY_FORMAT
return dateFormatter.stringFromDate(date)
} else {
return dateString
}
}
但它给了我:10 January 2016
我在这里做错了什么?
答案 0 :(得分:6)
您的API_FORMAT
dd/mm/yyyy
格式错误,mm
用于Minute
您需要MM
Month
。所以它必须像dd/MM/yyyy
答案 1 :(得分:1)
Swift 3.0 中的相同转化如下。
var dateString = "26/08/2016"
let dateFormatter = DateFormatter()
// *** Format to read string date ***
dateFormatter.dateFormat = "dd/MM/yyyy"
if let date = dateFormatter.date(from: dateString)
{
// *** set output date format ***
dateFormatter.dateFormat = "dd MMMM yyyy"
print("formatted date \(dateFormatter.string(from: date))")
} else {
print("can't convert \(dateString)")