swift 格式后日期未正确显示

Date not coming correctly after formate in swift

我根据我的代码分隔了日期和时间,然后我使用了 DateFormatter 但日期不正确.. 为什么?

像这样:可选(“08/15/0020”)

  var formateFromdate: String?
  var formateTodate: String?

  func addDate(){

  var fromDateArr = fromDateLabel.text!.components(separatedBy: ",")
        fromDate = fromDateArr[0]
        fromTime = fromDateArr[1].replacingOccurrences(of: " ", with: "")
  var toDateArr   = toDateLabel.text!.components(separatedBy: ",")
        toDate = toDateArr[0]
        toTime  = toDateArr[1].replacingOccurrences(of: " ", with: "")
        
        let inputFormatter = DateFormatter()
        inputFormatter.dateFormat = "MM/dd/yyyy"
                 
        let showDateFrom = inputFormatter.date(from: fromDate)
        inputFormatter.dateFormat = "MM/dd/yyyy"
        formateFromdate = inputFormatter.string(from: showDateFrom!)
        print(formateFromdate)
        }

注意:此处 fromDate = 08/15/2020 正确,但在合成日期之后不正确

输出:

    Optional("08/15/0020") it should be 08/15/2020


 

你需要先打开它

if let formate = inputFormatter.string(from: showDateFrom!){
        print(formate)
}

从格式化的日期输出来看,fromDate = fromDateArr[0] 的值似乎是 "08/15/20" 如果是这样,您将不得不使用如下日期格式;

    let inputFormatter = DateFormatter()
    inputFormatter.dateFormat = "MM/dd/yy"
    
    let showDateFrom = inputFormatter.date(from: fromDate)
    inputFormatter.dateFormat = "MM/dd/yyyy"
    let formateFromdate = inputFormatter.string(from: showDateFrom!)
    print(formateFromdate)