我有字符串日期,例如,
NSString * dateStr = @"2014-12-31";
我希望在三个月的月份中获得一个月份,例如 Des (来自dateStr)以及 31
等日期我尝试了大约2个小时,但我无法正常使用..
我的代码是..
首先将字符串转换为日期;
NSString *dateStr = [[self.listOfEvents objectAtIndex:indexPath.row] objectForKey:@"EventDate"];
NSDateFormatter *DTFormatter = [[NSDateFormatter alloc] init];
[DTFormatter setDateFormat:@"yyyy-MM-dd"];
NSDate *eventDate = [DTFormatter dateFromString:dateStr];
NSLog(@"eventDate - %@", eventDate);
现在将日期转换为字符串;
NSDateFormatter *currentDTFormatter = [[NSDateFormatter alloc] init];
[currentDTFormatter setDateFormat:@"dd MMM"];
NSString *eventDateStr = [DTFormatter stringFromDate:eventDate];
NSLog(@"eventDateStr - %@", eventDateStr);
所以,请建议我在这里错了。
已编辑:
我得到了控制台输出
eventDate - 2014-12-31 18:30:00 +0000
eventDateStr - 2014-12-31
答案 0 :(得分:3)
问题是您正在使用 DTFormatter
的旧日期格式转换,您必须使用 currentDTFormatter 代替它。
尝试 currentDTFormatter
此格式化程序。
NSDateFormatter *currentDTFormatter = [[NSDateFormatter alloc] init];
[currentDTFormatter setDateFormat:@"dd MMM"];
NSString *eventDateStr = [currentDTFormatter stringFromDate:eventDate];
NSLog(@"%@", eventDateStr);
答案 1 :(得分:2)
在致电[currentDTFormatter setDateStyle:NSDateFormatterMediumStyle];
setDateFormat
以下是苹果文档中的相应段落:
NSDateFormatterMediumStyle
Specifies a medium style, typically with abbreviated text, such as “Nov 23, 1937”.
Equal to kCFDateFormatterMediumStyle.
Available in OS X v10.4 and later.
Declared in NSDateFormatter.h.
答案 2 :(得分:0)
这里也说https://developer.apple.com/library/mac/documentation/Cocoa/Conceptual/DataFormatting/Articles/dfDateFormatting10_4.html#//apple_ref/doc/uid/TP40002369-SW1只使用一个“d”,所以“EdMMM”应该适用于英语语言环境,或者我猜“dMMM”甚至“d MMM”
答案 3 :(得分:0)
你试过了吗?
[formatter setDateFormat:@"dd-MMM-YYYY HH:mm"];
然后
[formatter stringFromDate:someNSDate];
答案 4 :(得分:0)
这是解决方案
NSString * dateStr = @"2014-12-31";
NSDateFormatter* df = [[NSDateFormatter alloc] init];
[df setDateFormat:@"yyyy-MM-dd"];
NSDate* date = [df dateFromString:dateStr];
NSLog(@"%@", date);
[df setDateFormat:@"dd MMM"];
NSString *dateString = [df stringFromDate:date];
NSLog(@"%@", dateString);
试试
答案 5 :(得分:0)
请尝试使用以下代码转换日期字符串...
- (NSString*) formatDateString:(NSString*)date
{
NSDateFormatter *inputFormatter = [[NSDateFormatter alloc] init];
[inputFormatter setDateFormat:@"yyyy-MM-dd"];
NSDate *formattedDate = [inputFormatter dateFromString: date];
NSDateFormatter *outputFormatter = [[NSDateFormatter alloc] init];
[outputFormatter setDateFormat:@"dd MMM"];
NSString *displayDate = [NSString stringWithFormat:@"%@", [outputFormatter stringFromDate:formattedDate]];
return displayDate;
}
您还可以将格式样式设置为NSDateFormatter
以格式化日期字符串
setTimeStyle:
setDateStyle:
您可以通过以下链接查看NSDateFormatter
以供参考。
https://developer.apple.com/library/mac/documentation/Cocoa/Reference/Foundation/Classes/NSDateFormatter_Class/Reference/Reference.html