【问题标题】:How to parse the string formate to another formate如何将字符串格式解析为另一种格式
【发布时间】:2021-09-08 07:10:06
【问题描述】:

如何解析以下字符串的日期格式

createdAt = "2021-09-03T19:33:44.791822+05:30" // 从服务器端获取值

      self.dateFormaterString(inputDate: "2021-09-03T19:33:44.791822+05:30")

      func dateFormaterString(inputDate: String) ->String{

        let formatter = DateFormatter()
 //       formatter.locale = Locale(identifier: "en_US_POSIX")
        formatter.dateStyle = .short
        if let date = formatter.date(from: inputDate){
            print(date)
        }
        return ""
    }

以下方法 dateFormaterString 返回 nil 中断日期值 如何将 "2021-09-03T19:33:44.791822+05:30" 转换为 "09/07/2021"

【问题讨论】:

  • InputString --(DateFormatterWithFormatCorrespondingToInputString)--> Date --(DateFormatterWithFormatCorrespondingToOutputString)--> OutputString,这就是逻辑。您是否为formatter.format 设置了正确的InputString 格式(此处为"2021-09-03T19:33:44.791822+05:30")以便成功调用.date(from:)?答案是否定的。这是第一步。然后,我们稍后会检查如何从date 获取"09/07/2021",但这是第二步。
  • 对于InputStringDate,这应该可以解决问题:formatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ss.SSSSSZ"。然后,我将让您了解如何获得"09/07/2021" 更多关于每个字符的含义的信息,请参见unicode.org/reports/tr35/tr35-31/…
  • @Larme 谢谢你,我忘了把字符串转换成日期,然后把它转换成我需要的格式化程序

标签: ios swift date


【解决方案1】:

您需要设置初始输入日期格式formatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ss.SSSSSZ"

       func dateFormaterString(inputDate: String) ->String{
        let formatter = DateFormatter()
        formatter.locale = Locale(identifier: "en_US_POSIX")
        formatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ss.SSSSSZ"
       
        guard let getDate = formatter.date(from: inputDate) else { return ""}
            
            formatter.dateStyle = .short 
           // if you want a exact op as 09/03/2021 then use 
           // formatter.dateFormat = "MM/dd/yyyy"
           return formatter.string(from: getDate)
        
    }

示例使用

   let value =  self.dateFormaterString(inputDate: "2021-09-03T19:33:44.791822+05:30")
    print(value)

你得到的输出是:9/3/21

【讨论】:

    猜你喜欢
    • 2014-03-04
    • 2019-11-10
    • 2013-07-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-04
    • 1970-01-01
    • 2013-10-22
    相关资源
    最近更新 更多