这些日期字符串的格式化字符串是什么?

时间:2014-07-18 12:59:36

标签: ios objective-c nsdate nsdateformatter

我从RSS Feed中获取日期字符串,例如

 1- "Saturday, May 10, 4pm - Wednesday, May 14, 2014, 5pm"
 2- "Wednesday, April 30, 2014, 5 - 6am"

我可以使用NSDateFormatter从这些字符串中获取NSDate吗?

有谁帮我解决这个问题?

更新

//
NSString *completeString = @"Saturday, May 10, 4pm - Wednesday, May 14, 2014, 5pm";

NSArray *array = [completeString componentsSeparatedByString:@"-"];

NSDateFormatter *dateFormatter1 = [[NSDateFormatter alloc] init];
dateFormatter1.locale = [NSLocale localeWithLocaleIdentifier:@"en_US_POSIX"];
[dateFormatter1 setDateFormat:@"EEEE, MMM dd, ha"];
NSDate *date1 = [dateFormatter1 dateFromString:[array firstObject]];

// second date
NSDateFormatter *dateFormatter2 = [[NSDateFormatter alloc] init];
dateFormatter2.locale = [NSLocale localeWithLocaleIdentifier:@"en_US_POSIX"];
[dateFormatter2 setDateFormat:@"EEEE, MMM dd, YYYY, ha"];

NSDate *date2 = [dateFormatter2 dateFromString:[array lastObject]];

NSString *thirdString = @"Wednesday, April 30, 2014, 5 - 6am";
NSDateFormatter *dateFormatter3 = [[NSDateFormatter alloc] init];
dateFormatter3.locale = [NSLocale localeWithLocaleIdentifier:@"en_US_POSIX"];
[dateFormatter3 setDateFormat:@"EEEE, MMM dd, YYYY, h - ma"];

NSDate *date3 = [dateFormatter3 dateFromString:thirdString];

NSLog(@"first date---%@", date1); 
NSLog(@"second date--%@", date2);
NSLog(@"third date---%@", date3);
  

第一次约会--- 2000-05-10 10:30:00 +0000

     

第二次约会 - 2013-12-25 11:30:00 +0000

     

第三次约会--- 2013-12-24 23:36:00 +0000

1 个答案:

答案 0 :(得分:3)

即将到来的日期字符串星期六,5月10日,下午4点格式为EEEE, MMM dd, Ha,所以首先用EEEE, MMM dd, Ha设置当前日期格式然后你做每个你希望这个字符串日期转换为新格式。例如贝娄;

NSString *dateStr = @"Saturday, May 10, 4pm";
// Convert string to date object
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
dateFormat.locale = [NSLocale localeWithLocaleIdentifier:@"en_US_POSIX"];
[dateFormat setDateFormat:@"EEEE, MMM dd, ha"];
NSDate *date = [dateFormat dateFromString:dateStr];

// Convert date object to desired output format
[dateFormat setDateFormat:@"EEE, MMm dd, h a"];
NSString *StrTime = [dateFormat stringFromDate:date];


NSLog(@" =%@",StrTime);

输出星期三,050 10,04 PM 来自星期六,5月10日,下午4点

在您的问题中,1。是两个字符串,而不是单个日期字符串,您可以创建如下:

[NSString stringWithFormat:@"%@ - %@", StrTime, StrTime];

<强>更新

第二个 2014年4月30日星期三,早上5点到6点“其日期格式如下:

EEEE, MMM dd, YYYY, h - ma

同样可以将此形式转换为其他形式。