【问题标题】:Swift date formatting快速日期格式化
【发布时间】:2015-03-06 15:23:20
【问题描述】:

我正在尝试从按钮中提取日期字符串,格式为存储在 CoreData 中的日期。

这是我的代码:

let dateStr = setDateBTN.titleLabel?.text
let dateFormatter = NSDateFormatter()
dateFormatter.dateFormat = "MM-dd-YYYY"
let date:NSDate = dateFormatter.dateFromString(dateStr!)!

如果我在 dateStr 上执行 println,我会得到以下信息:03-10-2015。然后,如果我立即 println on date 我得到:2014-12-21 05:00:00 +0000.

当我通过日期格式化程序运行实际日期时,为什么实际日期会发生变化?

【问题讨论】:

  • 查阅文档:年份的格式是“yyyy”,小写 y。 (而且你不是第一个犯这个错误的人:)
  • 谢谢,马丁。我最初将它作为小写字母,但其他东西不起作用,所以我只是在寻求帮助的情况下将其更改为大写字母。
  • 我刚刚发布了一个库,它可以帮助在 Swift 中使用 NSDate;希望对您有所帮助:github.com/malcommac/SwiftDate

标签: swift nsdateformatter


【解决方案1】:

NSDateFormatter 类参考:http://goo.gl/7fp9gl

日期格式指南(Apple):http://goo.gl/8zRTQl

一个常见的错误是使用 YYYY。 yyyy 指定日历年,而 YYYY 指定年份(“一年中的一周”),用于 ISO 年-周日历。

您的代码应该像您期望的那样工作:

let dateStr = setDateBTN.titleLabel?.text
let dateFormatter = NSDateFormatter()
dateFormatter.dateFormat = "MM-dd-yyyy"
let date:NSDate = dateFormatter.dateFromString(dateStr!)!

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-26
  • 2019-06-12
  • 2023-03-29
相关资源
最近更新 更多