【问题标题】:Get Date from week number in Swift 3从 Swift 3 中的周数获取日期
【发布时间】:2017-08-17 10:42:13
【问题描述】:

我有 myYearmyWeek 字符串来自 apis ,我想将它们转换为 date 字符串,如 YYYY-mm-dd 我怎样才能在 swift 3 中做到这一点?我的字符串在下面。

let myYear = "2017"
let myWeek = "8"

【问题讨论】:

  • 也许Convert string to DATE type in swift 3 会有所帮助?
  • @WiktorStribiżew 这个问题不是关于从日期字符串生成Date 对象,而是关于从DateComponents 获取Date 对象并从中生成字符串表示

标签: swift string date swift3


【解决方案1】:

您只需要将字符串转换为Ints,然后从中生成DateComponents 对象,通过CalendarDateComponents 中获取Date,最后使用DateFormatter 获取日期的预期字符串表示形式。

请记住,Date 对象将表示该年一周的第一秒,因此字符串表示将对应于该周的第一天。

let yearString = "2017"
let weekOfYearString = "8"

guard let year = Int(yearString), let weekOfYear = Int(weekOfYearString) else {return}
let components = DateComponents(weekOfYear: weekOfYear, yearForWeekOfYear: year)
guard let date = Calendar.current.date(from: components) else {return}

let df = DateFormatter()
df.dateFormat = "yyyy-MM-dd"
let outputDate = df.string(from: date)  //2017-02-19

【讨论】:

  • 使用year 而不是yearForWeekOfYear 确实陷入了困境。必须阅读您的答案两次,才能注意到您的解决方案确实有效?
猜你喜欢
  • 2017-04-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-11-19
  • 2017-08-09
  • 1970-01-01
相关资源
最近更新 更多