我有数据进入我的应用程序,这是一个存储在字符串中的日期,如下所示: “2011年1月31日星期二上午10:15”。
我尝试过使用dateFromString,然后使用NSDateFormatter将其更改为另一种格式(理想情况下我希望它显示为hh:mm(24小时)dd / mm / yyyy)。我找不到删除工作日名称的方法,因此每当我尝试打印结果时,它都会显示为null。
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];
任何人都可以帮忙吗?感谢
答案 0 :(得分:1)
您应该将问题隔离到解析或格式化。我的猜测是解析。这是您的示例字符串:
"Tuesday 31st January 2011 10:15am"
你的格式:
"EEEE-dd-MM-yyyy hh:mm a"
他们不匹配:
不考虑“st”部分,我怀疑你想要一种格式:
"EEEE dd MMMM yyyy hh:mma"
...但我不知道你将如何优雅地处理“st”(或“th”或“nd”),除了明确地弄乱字符串。