如何将日期字符串转换为格式“2010年11月17日”

时间:2010-11-17 10:53:32

标签: iphone objective-c ios4 nsdate nsdateformatter

我的日期格式为 2010-11-17 。格式为 NSString

我想将此 NSString日期转换为格式 2010年11月17日并显示在标签中

此日期不是当前日期,但可能是较旧的日期。

所以我不能使用[NSDate date]实例来获取日期。

我尝试将 NSDateFormatter dateFromString 方法一起使用。

但它给了我一个 null 值。

以下是代码段

     NSString *dates  = @”2010-11-16”;

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];

[dateFormatter setDateFormat:@"dd MMM yyyy"];

NSDate *dates1 = [dateFormatter dateFromString:dates];

NSString *dates2 = [dateFormatter stringForObjectValue:dates1];

NSLog(@"dates : %@",dates);

NSLog(@"Dates 2 :  %@",dates2);

[dateLabel setText:dates2];

NSLog(@"Formatted Date is : %@",dateLabel.text);

应该做什么?

请帮助并建议。

感谢。

3 个答案:

答案 0 :(得分:3)

试试这个

NSDateFormatter *formater = [[NSDateFormatter alloc] init];
[formater setDateFormat:@"yyyy-MM-dd"];
NSDate *date2 = [formater dateFromString:@"2010-11-17"];
[formater setDateFormat:@"d MMM yyyy"];
NSString *result = [formater stringFromDate:date2];
NSLog(@"RESULT %@",result);

我得到了结果。如果这种方法错误,请更正我。

答案 1 :(得分:1)

以下是一些想知道的格式!

 12:16:45 PM on January 01, 2000   --> hh:mm:ss a 'on' MMMM dd, yyyy
 Wednesday, Sep 12, 2018           --> EEEE, MMM d, yyyy--
 09/12/2018                        --> MM/dd/yyyy--
 09-12-2018 14:11                  --> MM-dd-yyyy HH:mm--
 Sep 12, 2:11 PM                   --> MMM d, h:mm a--
 September 2018                    --> MMMM yyyy--
 Sep 12, 2018                      --> MMM d, yyyy
 Wed, 12 Sep 2018 14:11:54 +0000   --> E, d MMM yyyy HH:mm:ss Z
 2018-09-12T14:11:54+0000          --> yyyy-MM-dd'T'HH:mm:ssZ
 12.09.18                          --> dd.MM.yy
 10:41:02.112                      --> HH:mm:ss.SSS
 12:16:45 PM                       --> hh:mm:ss a
 AM or PM                          --> a

答案 2 :(得分:0)

NSDateFormatter使用date format patterns from UNICODE

因此,对于 2010年11月17日日期,您需要以下内容:

NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"d MMM yyyy"];
NSString *result = [formatter stringForObjectValue:date];

date变量包含您要格式化的日期。

更新:尝试将您的代码更改为:

NSString *dates  = @”2010-11-16”;
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"yyyy-MM-dd"];
NSDate *dates1 = [dateFormatter dateFromString:dates];
[dateFormatter setDateFormat:@"dd MMM yyyy"];
NSString *dates2 = [dateFormatter stringForObjectValue:dates1];
NSLog(@"dates : %@",dates);
NSLog(@"Dates 2 :  %@",dates2);
[dateLabel setText:dates2];
NSLog(@"Formatted Date is : %@",dateLabel.text);