【问题标题】:Convert String to NSDate with Swift 2使用 Swift 2 将字符串转换为 NSDate
【发布时间】:2015-10-10 19:27:48
【问题描述】:

我正在尝试将字符串转换为NSDate 这是我的代码

     let strDate = "2015-11-01T00:00:00Z" // "2015-10-06T15:42:34Z"
     let dateFormatter = NSDateFormatter()
     dateFormatter.dateFormat = "yyyy-MM-ddTHH:mm:ssZ"
    print ( dateFormatter.dateFromString( strDate ) )

结果我不断收到nil

【问题讨论】:

    标签: ios swift2 nsdateformatter


    【解决方案1】:

    格式字符串中的“T”需要单引号,所以它不会被认为是一个符号:

    斯威夫特 3.0

    let strDate = "2015-11-01T00:00:00Z"
    let dateFormatter = DateFormatter()
    dateFormatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ssZ"
    let date = dateFormatter.date(from:strDate)
    print("date: \(date!)")
    

    输出:

    日期:2015-11-01 00:00:00 +0000

    斯威夫特 2.x

    let strDate = "2015-11-01T00:00:00Z"
    let dateFormatter = NSDateFormatter()
    dateFormatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ssZ"
    let date = dateFormatter.dateFromString(strDate)
    print("date: \(date!)")
    

    输出:

    日期:2015-11-01 00:00:00 +0000

    见:Date Field SymbolTable.

    这包括如果要表示文字文本,则需要将 ASCII 字母括在单引号中。

    【讨论】:

      【解决方案2】:

      对于 swift 4 和 swift 3.2 更新的答案。

      这里提到了所有Date相关的功能。

      这些功能对你有用。

      1=> 迄今为止的时间戳

      func timeStampToDate(_timestamp : String, _dateFormat : String) -> String{
      
              var LOCAL_TIME_ZONE: Int { return TimeZone.current.secondsFromGMT() }
      
              var date = Date(timeIntervalSince1970: TimeInterval(_timestamp)!)
              date += TimeInterval(LOCAL_TIME_ZONE as NSNumber)
              let dateFormatter = DateFormatter()
              dateFormatter.timeZone = TimeZone(abbreviation: "GMT") //Set timezone that you want
              dateFormatter.locale = NSLocale.current
              dateFormatter.dateFormat = _dateFormat //Specify your format that you want
              let strDate = dateFormatter.string(from: date)
              return strDate
          }
      

      2=> 日期转字符串

      func DateToString(date : Date, dateFormatte : String) -> String {
      
              let dateFormatter = DateFormatter()
      
              dateFormatter.dateFormat = dateFormatte
      
              print("Dateobj: (dateFormatter.string(from: dateObj!))")
      
              return (dateFormatter.string(from: date as Date))
      
          }
      

      3=> 字符串到日期

      func StringDateToDate(dateString : String, dateFormatte : String) -> Date {
      
              //let dateString = "Thu, 22 Oct 2015 07:45:17 +0000"
      
              //let dateFormatte = "EEE, dd MMM yyyy hh:mm:ss +zzzz"
      
              let dateFormatter = DateFormatter()
              dateFormatter.dateFormat = dateFormatte
              let dateObj = dateFormatter.date(from: dateString)
              if dateObj == nil {
                  return Date()
              }
              return dateObj!
          }
      

      【讨论】:

        猜你喜欢
        • 2015-09-07
        • 1970-01-01
        • 2016-11-06
        • 2011-01-19
        • 2011-06-27
        相关资源
        最近更新 更多