格式化 NSString 中的日期
我正在创建一个 NSDateCategory 来格式化日期,但它总是返回 null,有什么想法吗?
2011-06-05T16:55:00Z
+ (NSDate *)dateFromString:(NSString *)dateString
{
NSLog(@"date string %@", dateString);
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"yyyy-MM-dd+hh:MM:ss"];
NSDate *result = [dateFormatter dateFromString:dateString];
[dateFormatter release];
return result;
}
I am creating a NSDateCategory that formats a date but it always returns null, any ideas?
2011-06-05T16:55:00Z
+ (NSDate *)dateFromString:(NSString *)dateString
{
NSLog(@"date string %@", dateString);
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"yyyy-MM-dd+hh:MM:ss"];
NSDate *result = [dateFormatter dateFromString:dateString];
[dateFormatter release];
return result;
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
您的字符串和格式不匹配。您在日期字符串中使用“T”来分隔时间,并以时区指示符结尾。您的格式使用“+”来分隔时间并且没有时区指示符。您还使用了“MM”分钟,应该是“mm”。
有关格式化程序字符串中使用的符号,请参阅 UTS#35。
Your string and your format don't match. You used a "T" in the date string to separate the time and ended with a time zone indicator. Your format uses a "+" to separate the time and has not timezone indicator. You also used "MM" for minutes, which should "mm".
See UTS#35 for the symbols used in the formatter string.
多么伟大的使命啊!终于想通了。在您担心格式之前,需要先设置时区!
What a huge mission! Finally figured it out. The timezone needs to be set before you even worry about the formatting!
我认为它应该是
dateFormatter setDateFormat:@"yyyy-MM-dd+hh:mm:ss"];
(mm 表示分钟)I assuem it should be
dateFormatter setDateFormat:@"yyyy-MM-dd+hh:mm:ss"];
(mm is for minutes)