在 Objective-C 中使用 NSDateFormatter

Using NSDateFormatter in objective-C

本问题已经有最佳答案,请猛点这里访问。

我想使用 nsdateformatter.

2013-07-10T21:48:09.000Z 转换为 10.7.2013

我已经尝试过一些教程,但我似乎无法弄清楚该怎么做,我该如何正确地进行这种转换?

非常感谢任何帮助。

我试过这个,但我只得到一个 (null)

1
2
3
4
    NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
    [dateFormatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:000Z"];
    NSDate *theDate = [dateFormatter dateFromString:stringDate];
    NSLog(@"%@",[dateFormatter stringFromDate:theDate]);


首先,你的日期格式错误——第二行应该是[dateFormatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ss.000Z"];——也就是说,你需要在mm:之后但在000Z之前的ss.。这将为您提供正确的 NSDate。

接下来,您需要创建一个格式为 @"dd.M.yyyy" 的新日期格式化程序(或者如果您想删除前导零,如果日期也是一位数,则为 @"d.M.yyyy")并在其上调用 stringFromDate: NSLog.

回顾一下,整个代码块将是

1
2
3
4
5
6
7
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ss.000Z"];
NSDate *theDate = [dateFormatter dateFromString:stringDate];

NSDateFormatter *printFormatter = [[NSDateFormatter alloc] init];
[printFormatter setDateFormat:@"dd.M.yyyy"];
NSLog(@"%@",[printFormatter stringFromDate:theDate]);