我正在尝试从字符串(08-05-1988)格式化日期我想转换为日期,如下所示,输出也在下面给出,
let dateString = "08-05-1988"
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "dd-MM-yyyy"
let dateFromString = dateFormatter.date(from: dateString)
let stringValue = String(describing: dateFromString)
输出:可选(1988-05-07 18:30:00 +0000)
然后,我想将输出日期从(1988-05-07 18:30:00 +0000)格式化为下面给出的其他格式。但是,当格式化为Date
的字符串为nil
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "yyyy-mm-dd hh:mm:ss Z"
let date = dateFormatter.date(from: dateString)
let formatter = DateFormatter()
formatter.dateFormat = "dd-MMM-yyyy"
let formatedDate:String = formatter.string(from: date!)
预期产出:1988年5月8日
答案 0 :(得分:1)
输出Optional(1988-05-07 18:30:00 +0000)
是description
对象的Date
的结果。它与任何给定的字符串格式无关。
要将08-05-1988
转换为08-May-1988
,您只需使用
let dateString = "08-05-1988"
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "dd-MM-yyyy"
let dateFromString = dateFormatter.date(from: dateString)
dateFormatter.dateFormat = "dd-MMM-yyyy"
let formatedDate = dateFormatter.string(from: dateFromString!)
答案 1 :(得分:1)
let date = Date()
let format = DateFormatter()
format.dateFormat = "dd-MM-yyyy"
let formatDate = format.string(from: date)
答案 2 :(得分:0)
您在dateFormatter.date
而不是dateString
上呼叫dateFromString
。由于"08-05-1988"
与"yyyy-mm-dd hh:mm:ss Z"
的指定格式不匹配,dateFormatter.date
会返回nil
。