【问题标题】:dateFromString() returns incorrect datedateFromString() 返回不正确的日期
【发布时间】:2015-12-14 09:18:46
【问题描述】:

我正在尝试将字符串转换为日期,但它导致日期不正确。

let dateFormatter = NSDateFormatter()
dateFormatter.dateFormat = "dd MMM YYYY"
let dt = dateFormatter.dateFromString("17 Sep 2015")
println("Date : \(dt)") 

结果

Date : Optional(2014-12-20 18:30:00 +0000)

请让我知道我在哪里犯了错误。我也尝试了其他格式,但它返回 nil。

【问题讨论】:

    标签: swift nsdate nsdateformatter


    【解决方案1】:

    年份格式不正确,应该是yyyy,而不是YYYY

    “Y”:年份(在基于“一年中的一周”的日历中)。此年份名称用于 ISO 8601 定义的 ISO 年-周日历,但也可用于需要处理周日期的非公历日历系统中。 可能并不总是与日历年相同

    见:Date Field SymbolTable.
    另外:ICU Formatting Dates and Times

    【讨论】:

      【解决方案2】:

      您的日期格式字符串错误。将其更改为以下内容:

      dateFormatter.dateFormat = "dd MMM yyyy"
      

      有关更多信息,请阅读 Date Formatters 文档。

      【讨论】:

      • 谢谢。有效。在我尝试将日期转换为具有相同格式(dd MMM YYYY)的字符串并且它有效之前。为什么这不起作用?
      • 来自文档:“一个常见的错误是使用 YYYY。yyyy 指定日历年,而 YYYY 指定年份(“一年中的一周”),用于 ISO 年-周日历。在大多数情况下,yyyy 和 YYYY 产生相同的数字,但它们可能不同。通常您应该使用日历年。"
      猜你喜欢
      • 2012-07-01
      • 1970-01-01
      • 2020-02-16
      • 2019-12-03
      • 1970-01-01
      • 2021-06-22
      • 1970-01-01
      • 2015-10-30
      • 2015-02-05
      相关资源
      最近更新 更多