从字符串格式化日期 - swift3.



嗨,我正在尝试从字符串格式化日期 (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( 格式化为其他格式,如下所示。但是,当将字符串格式化为Datenil

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!)

预计产量 : 08-May-1988

输出Optional(1988-05-07 18:30:00 +0000)Date对象description的结果。它与任何给定的字符串格式无关。

要将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!)
let date = Date()
let format = DateFormatter()
format.dateFormat = "dd-MM-yyyy"
let formatDate = format.string(from: date)

你在dateString而不是dateFromString上调用dateFormatter.date。 由于"08-05-1988"与指定的"yyyy-mm-dd hh:mm:ss Z"格式不匹配,dateFormatter.date返回nil

最新更新