SwiftDate替换toDate函数swift 3

时间:2016-11-23 14:26:08

标签: date swift3 xcode8 isodate

在swift 2.x中的

我使用了日期函数来使用SwiftDate获取iso日期。任何人都知道正确的替代品:

let isoDate = stringDate.toDate(DateFormat.ISO8601Format(.Extended))

看看SwiftDate文档,我尝试过这样的事情:

let isoDate = stringDate.date(format:.iso8601)

但它抱怨格式

修改

我将SwiftDate版本从4.0.7改为4.0.3,现在iso格式存在但是抛出错误

我的日期字符串:"2016-11-24T03:00:00.000Z"

let isoDate = try! dt.date(format: DateFormat.iso8601(options: .extended)).absoluteDate

错误:输入'ISO8601DateTimeFormatter.Options'没有成员'extended'

let isoDate = try! dt.date(format: DateFormat.iso8601(options: [])).absoluteDate

错误:没有错误但是抛出

在swift 2.2中我使用完全相同的日期格式。

1 个答案:

答案 0 :(得分:0)

根据SwiftDate CHANGELOG

  

SwiftDate 4.0.5

     
      
  • #293添加.withInternetDateTimeExtended作为ISO8601DateTimeFormatter的选项
  •   

这是source file

// The format used for internet date times; it's similar to .withInternetDateTime
// but include milliseconds ('yyyy-MM-dd'T'HH:mm:ss.SSSZZZZZ').
public static let withInternetDateTimeExtended = ISO8601DateTimeFormatter.Options(rawValue: 1 << 11)

编译当前最新版本(SwiftDate 4.0.7):

let stringDate = "2016-11-24T03:00:00.000Z"
let options = ISO8601DateTimeFormatter.Options.withInternetDateTimeExtended
let format = DateFormat.iso8601(options: options)
let isoDate = try? stringDate.date(format: format)