不能从dateString中获取NSDate

时间:2012-03-09 14:32:17

标签: objective-c nsdate nsdateformatter

我是字符串@"Sun, 15 Jan 2012 17:09:48 +0000"我想要它的日期.. 我能做什么 我试过了

NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setDateFormat:@"DDD, DD MMM YYYY HH:MM:SS +HHMM"];
NSDate *date = [dateFormat dateFromString:stringDate];
but date was nslogged with null

4 个答案:

答案 0 :(得分:1)

不正确dateFormat:,请使用:

[dateFormat setDateFormat:@"EEE, dd MMM yyyy HH:mm:ss ZZZ"];

timezone unicode example

更多信息:http://unicode.org/reports/tr35/tr35-6.html#Time_Zone_Fallback

答案 1 :(得分:1)

您的格式不正确且here is why

Sun, 15 Jan 2012 17:09:48 +0000
DDD, DD MMM YYYY HH:MM:SS +HHMM
^^^  ^^     ^^^^    ^^ ^^ ^^^^^ < Treating the last 2 digits of the timezone as months
^^^  ^^     ^^^^    ^^ ^^ ^^^ < Treating the first 2 digits of the timezone as hours
^^^  ^^     ^^^^    ^^ ^^ ^ < Hardcoding the + (timezone can handle that)
^^^  ^^     ^^^^    ^^ ^^ < Using fractional seconds (not a big deal)
^^^  ^^     ^^^^    ^^ < Using months instead of minutes
^^^  ^^     ^^^^ < Using weak year instead of calendar year
^^^  ^^ < Using day of year instead of day of the month
^^^ < Using day of year instead of day of the week

这是正确的格式"EEE, dd MMM yyyy HH:mm:ss ZZZ"

答案 2 :(得分:0)

您的日期格式可能有误。请查看此处的文档:

http://unicode.org/reports/tr35/tr35-6.html#Date_Format_Patterns

试试:E, d MMM y HH:mm:ss Z

答案 3 :(得分:0)

嗯,我看错了几件事。我认为您需要查看日期格式化指南:https://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/DataFormatting/Articles/dfDateFormatting10_4.html#//apple_ref/doc/uid/TP40002369-SW1

首先,格式区分大小写。 Soo ...资本'M'是月,小写'm'是分钟。日是小写的'd'。年份是小写的“y”。你可能还有其他的错误,但这应该让你开始朝着正确的方向前进。