1

我想将 NSDate 从 XML 保存到 coreData。我不知道如何设置 NSDate 的值。有人可以给我一点帮助吗?我的实体属性是 NSDate。还是应该是字符串并将日期另存为字符串?

[Sets setValue:[TBXML textForElement:xmlDate] forKey:@"beginDate"];

感谢您的任何回复和帮助,
brush51

4

2 回答 2

6

无论您是否有意混淆,您都没有说出来,所以我猜测:

  • [TBXML textForElement:xmlDate]返回一个 NSString
  • beginDate是实体的日期属性Sets

在这种情况下,您的代码显然不正确:您必须传递NSDateto的实例setValue:forKey:。您的代码如下所示:

NSDateFormatter *myXMLdateReader = [[NSDateFormatter alloc] init];
[myXMLdateReader setDateFormat:@"yyyy-MM-dd"]; // for example
NSDate *itsDate = [myXMLdateReader dateFromString:[TBXML textForElement:xmlDate]];
[myXMLdateReader release];
[Sets setValue:itsDate forKey:@"beginDate"];
于 2011-09-07T11:55:31.323 回答
3

NSDate加进去没问题CoreData。您需要做的就是NSString从 XML 文件转换为NSDate对象。对于转换NSString <-> NSDate您可以使用NSDateFormatterclass. 在下面的示例中,您可以看到我是如何做到的:

NSDateFormatter *parseFormatter = [[[NSDateFormatter alloc] init] autorelease];
[parseFormatter setLocale:[[[NSLocale alloc] initWithLocaleIdentifier:@"US"] autorelease]];
[parseFormatter setDateFormat:@"EEE, dd MMM yyyy HH:mm:ss Z"];
NSString *dateString = @"Mon, 02 May 2011 21:12:56 +0000";
NSDate *dateToAdd = [parser.parseFormatter dateFromString:dateString];

您可以设置需要的日期格式并在您的项目中使用此代码。

于 2011-09-07T11:49:35.523 回答