格式化日期到DD-MMM中的iOS(Formatting Date to dd-MMM in iOS

2019-09-17 05:15发布

我一直在寻找这一点,并不能完全找到它。 我有一个NSDictionary的一个对象,它包含的NSDate。 现在标准的NSDate对象是相当长的。 我想,以显示DD-MMM格式的用户。

对于如:原日期可能2012-04-23 00:00:00 +0000 ,为此,我想要的日期显示为23 Apr

我尝试使用NSDateComponents和NSDateFormatter,但它也不太工作。 也许我没有搞清楚正确的使用情况所需要的格式。

这里是为了更好地理解的代码:

            NSLog(@"From Dictionary, Date = %@",[tmpDict objectForKey:@"eventDate"]);
            NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
            [dateFormatter setDateFormat: @"yyyy-MM-dd HH:mm:ss Z"]; 
            NSString *dateString = [tmpDict objectForKey: @"eventDate"];
            NSDate *date = [dateFormatter dateFromString: dateString];

            NSLog(@"MY DATE: %@",date);
            NSDateFormatter *dateFormatter2 = [[NSDateFormatter alloc] init];
            [dateFormatter2 setDateFormat:@"dd-MMM"];
            NSString *formattedDateString = [dateFormatter2 stringFromDate:date];
            NSLog(@"Formatted Date: %@",formattedDateString);

输出为2012-05-19 7时30分56秒的From Dictionary, Date和空的格式化的日期和我的约会。 而tmpDict的是,我使用的字典对象。

我在这里先向您的帮助表示感谢。

Answer 1:

从以下邓肯ç的答案。

如果日期表示为一个字符串,首先把它变成一个日期,然后使用NSDateFormatter就可以了。 假设格式将保持不变,这将是

[dateFormatter setDateFormat: @"yyyy-MM-dd HH:mm:ss Z"]; 
NSString *dateString = [dictionaryObject objectForKey: @"eventDate"];
NSDate *date = [dateFormatter dateFromString: dateString];

然后,你可以做你此刻在做什么date对象。



Answer 2:

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"dd-MMM"];
NSString *formattedDateString = [dateFormatter stringFromDate:myDate];
[dateFormatter release];


Answer 3:

这听起来像你从你的字典用钥匙取EVENTDATE的对象是一个字符串,而不是日期。

试试这个代码:

NSDate *myDate=[tmpDict objectForKey:@"eventDate"]; 
NSLog(@"myDate class = %@", [myDate class]);

我敢打赌,它显示了一个类的NSString,或者它的子类,而不是一个NSDate之一。



文章来源: Formatting Date to dd-MMM in iOS