将它放入游乐场会产生我不理解的输出。
Dec 30, 2014
的第一个输出有意义,但第二个Dec 2015
没有。
为什么我的第二产出显示2015年?我的地方是带有阳历的美国。
import UIKit
let dateString = "2014-12-30T00:00:00.000-05:00"
let _dateFormatter = NSDateFormatter()
_dateFormatter.calendar = NSCalendar(calendarIdentifier: NSCalendarIdentifierGregorian)
_dateFormatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ss'.'SSSZZZZZ"
let date = _dateFormatter.dateFromString(dateString)!
let format = NSDateFormatter.dateFormatFromTemplate("MMM d YYYY", options: 0, locale: NSLocale.currentLocale())
let formatter = NSDateFormatter()
formatter.dateFormat = format
formatter.dateStyle = NSDateFormatterStyle.MediumStyle
let monthFormat = NSDateFormatter.dateFormatFromTemplate("MMM YYYY", options: 0, locale: NSLocale.currentLocale())
let monthFormatter = NSDateFormatter()
monthFormatter.dateFormat = monthFormat
let fullDate = formatter.stringFromDate(date)
let monthDate = monthFormatter.stringFromDate(date)
答案 0 :(得分:1)
您使用的是错误的字符串格式。你必须改变" Y"这是一周的一周。只需将其更改为" y":
import UIKit
let dateString = "2014-12-30T00:00:00.000-05:00"
let _dateFormatter = NSDateFormatter()
_dateFormatter.calendar = NSCalendar(calendarIdentifier: NSCalendarIdentifierGregorian)
_dateFormatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ss'.'SSSZZZZZ"
let date = _dateFormatter.dateFromString(dateString)!
let format = NSDateFormatter.dateFormatFromTemplate("MMM d yyyy", options: 0, locale: NSLocale.currentLocale())
let formatter = NSDateFormatter()
formatter.dateFormat = format
formatter.dateStyle = NSDateFormatterStyle.MediumStyle
let monthFormat = NSDateFormatter.dateFormatFromTemplate("MMM yyyy", options: 0, locale: NSLocale.currentLocale())
let monthFormatter = NSDateFormatter()
monthFormatter.dateFormat = monthFormat
let fullDate = formatter.stringFromDate(date)
let monthDate = monthFormatter.stringFromDate(date)
如果您需要参考,请查看此图表: