首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SwiftDate替换toDate函数swift 3

SwiftDate替换toDate函数swift 3
EN

Stack Overflow用户
提问于 2016-11-23 14:26:08
回答 1查看 592关注 0票数 0

在Quick2.x中,我使用toDate函数来获得使用SwiftDate的iso日期。任何人都知道正确的替代办法:

代码语言:javascript
复制
let isoDate = stringDate.toDate(DateFormat.ISO8601Format(.Extended))

在查看SwiftDate文档时,我尝试了这样的方法:

代码语言:javascript
复制
let isoDate = stringDate.date(format:.iso8601)

但对格式的抱怨

编辑:

我将SwiftDate版本从4.0.7改为4.0.3,现在存在iso格式,但引发了一个错误

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

代码语言:javascript
复制
let isoDate = try! dt.date(format: DateFormat.iso8601(options: .extended)).absoluteDate

错误:键入'ISO8601DateTimeFormatter.Options‘没有成员’扩展‘

代码语言:javascript
复制
let isoDate = try! dt.date(format: DateFormat.iso8601(options: [])).absoluteDate

错误:没有错误但抛出

在快速2.2中,我使用了完全相同的日期格式。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-11-23 17:08:28

根据SwiftDate变更量g

SwiftDate 4.0.5

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

这是源文件

代码语言:javascript
复制
// 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)上编译的:

代码语言:javascript
复制
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)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40767067

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档