捷径系列:NSDate

该系列文章来自http://borkware.com/quickies/。无论是学习还是开发都可以从这里获得很多有用的代码段,从而省去了很多调查和搜索的时间。

1 xsd:date转换到NSDate
xsd:date的格式是一个完整的ISO8601格式的一个子集。如下一个基于Jens Alfke发布的帖子将xsd:date转换成NSDate的快捷方式。对于完整的ISO 8601解析器, 请参照Peter Hosey的一个帖子。
代码如下:


  
  1. NSDate *xsdDateTimeToNSDate (NSString *dateTime) {  
  2.     static NSDateFormatter *xsdDateTimeFormatter;  
  3.     if (!xsdDateTimeFormatter) {  
  4.         xsdDateTimeFormatter = [[NSDateFormatter alloc] init];  // Keep around forever  
  5.         xsdDateTimeFormatter.timeStyle = NSDateFormatterFullStyle;  
  6.         xsdDateTimeFormatter.dateFormat = @"yyyy-MM-dd'T'HH:mm:sszzz";  
  7.     }  
  8.  
  9.     // Date formatter不能解析末尾的单个Z,所以将其变成"GMT".  
  10.     if ([dateTime hasSuffix: @"Z"]) {  
  11.         dateTime = [[dateTime substringToIndex: dateTime.length - 1]  
  12.                        stringByAppendingString: @"GMT"];  
  13.     }  
  14.  
  15.     NSDate *date = [xsdDateTimeFormatter dateFromString: dateTime];  
  16.     if (!date) NSLog(@"could not parse date '%@'", dateTime);  
  17.  
  18.     return (date);  
  19.  

2 今天的日期


  
  1. NSDate *today;  
  2. today = [NSDate date];