NSDateFormatter 确实返回了预期的结果
我创建了一个从 NSString 返回 NSDate 的方法。代码如下。我发送到函数“2/25/2011”。该函数返回“2010-12-26 08:00:00 +0000”
我做错了什么?最后我还需要释放 NSString 。我该怎么做?
谢谢你!
-(NSDate *) GetDatefromString:(NSString *) Str
{
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"MM-dd-YYYY"];
NSDate *dateFromString;
// = [[NSDate alloc] init]; tried taking this part out but still not working
if (Str != NULL)
{
dateFromString = [formatter dateFromString:Str];
}
else
{
dateFromString = [formatter dateFromString:@"1/1/1970"];
}
[formatter release];
return dateFromString;
// how do I release dateFromString?
/*
Printing description of dateFromString:
2010-12-26 08:00:00 +0000
Printing description of Str:
02-25-2011
*/
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
您使用
/
分隔符传递日期,但指定-
作为日期格式化程序的分隔符。至于关于释放字符串的问题,您应该只释放您拥有的对象,即您使用new
、alloc
、copy
创建的对象,或mutableCopy
。请参阅下面的示例。You are passing in a date using the
/
seperator but you specified-
as a separator for your date formatter. As to your question on releasing the string, you should only release objects that you own, i.e. that you have created withnew
,alloc
,copy
, ormutableCopy
. See examples below.您将格式设置为
@"MM-dd-YYYY"
,但传入的字符串的格式为@"1/1/1970"
。那不匹配。请参阅 数据格式化指南:日期格式化程序。使用 自动释放。
请参阅内存管理。
you set the format to
@"MM-dd-YYYY"
but the string you pass in has the form@"1/1/1970"
. That doesn't match. see Data Formatting Guide: Date formatters.With autorelease.
See Memory management.
我遇到的问题是格式中有年份的大写字母。
这是正确的:
这是错误的: 注意大写字母 YYYY
The problem I had was the format had CAP LETTERS for the YEAR.
This is correct:
And this is wrong: NOTE THE CAPS YYYY