NSDate,无法获得正确的日期格式

NSDate, Can't get proper date format

这是我试图让我的应用读取的时间戳:2016 年 3 月 3 日,星期四 16:06:42 GMT

这是我最接近的,但还没有成功:

[df setDateFormat:@"EEE, dd MMM YYYY HH:mm:ss z"];

编辑:我当前的格式 prints-to/reads:星期二,2016 年 2 月 02 日 11:36:57 GMT-5

有什么我遗漏的吗?

最终编辑:

我应该刚刚发布我所有的代码...

    [df setLocale:[NSLocale systemLocale]];

这让我一团糟。

我认为你的年份不正确。将您的日期格式更改为

[df setDateFormat:@"EEE, dd MMM yyyy HH:mm:ss z"];

查看文档 on formatter dates here

我尝试使用您的日期格式并将其转换为 nsdate,然后再转换回字符串。它应该适用于您使用的格式字符串。

let time = "Thu, 03 Mar 2016 16:06:42 GMT"
let dateformat = "EEE, dd MMM yyyy HH:mm:ss z"

var dateformatter = NSDateFormatter()
dateformatter.dateFormat = dateformat
dateformatter.timeZone = NSTimeZone(forSecondsFromGMT: 0)

var date = dateformatter.dateFromString(time)

var newTime = dateformatter.stringFromDate(date!)
// newTime = "Thu, 03 Mar 2016 16:06:42 GMT"

编辑:我按照 Devster101 的建议将日期格式更改为使用小写 ys 表示年份。这是根据 this spezification which is used since iOS 7

的正确格式