由于的plist是XML,这是文本,当一个NSDate对象被写入的plist,结果是这样的:直接如何以编程方式获得NSDate plist表示形式?
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<date>2011-04-01T02:09:15Z</date>
</plist>
我想获得字符串(011-04-01T02:09:15Z
),没有所有的环境。必须有这样做不是更明智的方式:
NSString *xmlRepresentationOfCurrentDate = [[[[[[[NSString alloc] initWithData:[NSPropertyListSerialization dataFromPropertyList:self format:kCFPropertyListXMLFormat_v1_0 options:0 error:NULL] encoding:NSUTF8StringEncoding] autorelease] componentsSeparatedByString:@"<date>"] objectAtIndex:1] componentsSeparatedByString:@"</date>"] objectAtIndex:0];
什么复杂这是事实,上面的表示是GMT,显然创建的NSDate对象的过程中的时区设置。上述代码的另一种选择是获取GMT偏移量,使用dateWithTimeInterval:sinceDate:
方法获取GMT日期,然后使用NSDateFormatter
来写出上述字符串。但是,因为这有更多的开销。
有什么办法可以得到这个XML字符串?
'descriptionWithCalendarFormat:时区:区域: '是一种Mac OS X方法,它在iOS上不存在。 – executor21 2011-04-01 02:47:30
对不起,我认为苹果公司会有这两种。我会编辑我的帖子以表明这一点。 – ughoavgfhw 2011-04-01 02:54:36
它也“被弃用”,所以你不应该在任何平台上使用它。 – 2011-04-01 04:34:56