Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在objective-C中使用NSDateFormatter_Objective C_Nsdateformatter - Fatal编程技术网

在objective-C中使用NSDateFormatter

在objective-C中使用NSDateFormatter,objective-c,nsdateformatter,Objective C,Nsdateformatter,我想使用nsdateformatter将2013-07-10T21:48:09.000Z转换为10.7.2013 我已经试着通过一些教程,但我似乎不知道该怎么做,我该如何正确地做这个转换 非常感谢您的帮助 我尝试了这个,但只返回了一个(null) 首先,您的日期格式是错误的——第二行应该是[dateFormatter setDateFormat:@“yyy-MM-dd'T'HH:MM:ss.000Z”]——也就是说,您需要在mm:之后,但在000Z之前使用ss.。这将为您提供正确的NSDate

我想使用
nsdateformatter
2013-07-10T21:48:09.000Z
转换为
10.7.2013

我已经试着通过一些教程,但我似乎不知道该怎么做,我该如何正确地做这个转换

非常感谢您的帮助

我尝试了这个,但只返回了一个
(null)


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

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

简单回顾一下,整个代码块都是

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]);

请链接到您使用的教程查看此处,例如:您的格式中缺少秒部分。请阅读NSDateFormatter规范。然后通过几个页面中的链接,找到描述格式字符串的地方。然后搜索关于NSDateFormatter的数千个问题,这些问题都是以前的人写的,他们和你一样,没有做过这项基础研究。在你上面的代码片段中,你是否进行了所需的最少调试,以查看你是否从
dateFromString
操作中获得了良好的结果,把你的问题一分为二?它返回'2013-07-10T21:48:09.000+0000',我需要它返回'10.7.2013'@IamGretar Oops,没听清楚--我以为你只是想要正确的日期。我已经更新了我的答案。不需要成为新的NSDateFormatter——只需将新格式设置为旧格式。@Hotclick Good point,也同样有效(并为您节省分配另一个
NSDateFormatter
instance)的麻烦。
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]);