2012-02-09 75 views
0

我有数据进入我的应用程序,这是存储在字符串中的日期,如下所示: “2011年1月31日星期二上午10点15分”。我尝试过使用dateFromString,然后NSDateFormatter将其更改为另一种格式(理想情况下,我希望它显示为hh:mm(24小时)dd/mm/yyyy)。我无法找到删除星期几名称的方法,所以每当我尝试打印结果时,它都会显示为空。删除表示日期的存储字符串中的日期名称

NSDateFormatter *df = [[NSDateFormatter alloc] init]; 
//is EEEE is for weekdays? 

[df setDateFormat:@"EEEE-dd-MM-yyyy hh:mm a"]; 

NSDate *myDate = [df dateFromString:[[_feeds[_currentTableView] objectAtIndex:row] objectForKey:@"created"]]; 

NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init]; 
[dateFormat setDateFormat:@"dd-MM-yyyy"]; 

NSDateFormatter *timeFormat = [[NSDateFormatter alloc] init]; 
[timeFormat setDateFormat:@"HH:mm"]; 

NSDate *now = [[NSDate alloc] init]; 

NSString *theDate = [dateFormat stringFromDate:myDate]; 
NSString *theTime = [timeFormat stringFromDate:myDate]; 

NSLog(@"\n" 
     "theDate: |%@| \n" 
     "theTime: |%@| \n" 
     , theDate, theTime); 

[dateFormat release]; 
[timeFormat release]; 
[now release]; 

任何人都可以帮忙吗?谢谢

回答

1

您应该将问题隔离到解析或格式。我的猜测是这是解析。这是你的样品字符串:

"Tuesday 31st January 2011 10:15am" 

而且您的格式:

"EEEE-dd-MM-yyyy hh:mm a" 

他们不匹配:

  • ,我们在您的示例文本没有连字符
  • 有 “ST”在“31”之后 - 我不确定你将如何处理
  • 该月份是以名称而非数字给出的,所以我uspect你想“MMMM”(如果iOS版的格式说明像其他那些我熟悉)
  • 有没有空间“15”之间“是”

撇开了“ST”的一部分,我怀疑你想要的格式:

"EEEE dd MMMM yyyy hh:mma" 

...但我不知道你会如何处理“ST”(或“日”或“ND”)优雅,比其他只是明确地弄乱了字符串。

+0

好的,谢谢,我真的不知道从哪里开始。 – TheBestBigAl 2012-02-09 17:45:10

相关问题