由於的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