Swift 由于日期格式的原因,我的应用程序在不同地区崩溃

Swift 由于日期格式的原因,我的应用程序在不同地区崩溃,swift,xcode,datetime,swift5,Swift,Xcode,Datetime,Swift5,我的应用程序在不同的国家崩溃了。当我改变我的系统时区时,它显示为零。我从API中获取了日期时间字符串。首先,我将其转换为日期字符串,转换后没有给出正确的日期时间。请帮助我 我的日期字符串是“6/30/2020 12:07:01 AM” 对于迄今为止的字符串:- static func stringToDate(dateString:String)->Date{ let dateFormatter = DateFormatter() dateFormatter.dateFor

我的应用程序在不同的国家崩溃了。当我改变我的系统时区时,它显示为零。我从API中获取了日期时间字符串。首先,我将其转换为日期字符串,转换后没有给出正确的日期时间。请帮助我 我的日期字符串是“6/30/2020 12:07:01 AM”

对于迄今为止的字符串:-

static func stringToDate(dateString:String)->Date{
    let dateFormatter = DateFormatter()
    dateFormatter.dateFormat = "MM/dd/yyyy HH:mm:ss a"
    let date = dateFormatter.date(from:dateString)!
    return date
}
用于日期字符串

 static func dateToString(date:Date)->String{
       let dateFormatter = DateFormatter()
       dateFormatter.dateFormat = "dd MMM yyyy HH:mm a"
       let dateString = dateFormatter.string(from: date)

       return dateString
   }

它正在其他地区崩溃。

如果让,则不使用let-use-if-let

static func stringToDate(dateString:String)->Date?{
    let dateFormatter = DateFormatter()
    dateFormatter.dateFormat = "MM/dd/yyyy HH:mm:ss a"
    if let date = dateFormatter.date(from:dateString) {
    return date
  } else { 
    //code what to do if date format does not match
    return nil
 }
}


    static func dateToString(date:Date)->String{
       let dateFormatter = DateFormatter()
       dateFormatter.dateFormat = "dd MMM yyyy HH:mm a"
       if let dateString = dateFormatter.string(from: date)
       {
         return dateString
       } else {
       //code what to do if date format does not match
        return ""
      }
   }

它在哪个功能中崩溃?你能举个例子说明它在哪个地区工作,在哪里崩溃吗?它在印度工作,不是在模拟器中崩溃,而是在美国崩溃。你没有回答我问题的第一部分,代码中哪里会崩溃?在将字符串转换为日期时,您说您从api获取字符串,因此我假设它始终是相同的格式,但显然不是(除非您正在对字符串执行某些操作),因此您需要检查api文档,并调查为什么字符串可以包含不同格式的日期。我建议你删除这个问题,因为在我看来只有你才能回答。