当前位置:  开发笔记 > IOS > 正文

NSDate的字符串描述

如何解决《NSDate的字符串描述》经验,为你挑选了3个好方法。

我有以下代码:

[ [NSDate date] descriptionWithLocale: @"yyyy-MM-dd" ]

我希望它以下列格式返回日期:"2009-04-23"

但它返回:2009年4月23日星期四下午11:27:03 GMT + 03:00

我究竟做错了什么?

先感谢您.



1> situee..:
NSDateFormatter* dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"yyyy-MM-dd"];
NSString *dateString = [dateFormatter stringFromDate:[NSDate date]];
[dateFormatter release];  // delete this line if your project uses ARC
NSLog(@"%@",dateString); 


出于区域设置原因,您不应显式设置日期和时间格式.相反,使用区域设置友好的样式:`[dateFormatter setDateStyle:NSDateFormatterMediumStyle]; [dateFormatter setTimeStyle:NSDateFormatterMediumStyle];`

2> Sebastian Ce..:

你使用的是错误的方法.而是试试descriptionWithCalendarFormat:timeZone:locale:

[[NSDate date] descriptionWithCalendarFormat:@"%Y-%m-%d"
                                    timezone:nil
                                      locale:nil];

另请注意,该方法的格式与您问题中的格式不同.完整的文档可以在这里找到.

编辑:虽然迈克指出,你真的应该使用NSDateFormatter.descriptionWithCalendarFormat:timezone:locale:苹果在文档中提到了一些问题.


@NicHubbard:此方法既不被弃用也不被折旧.至少从10.6(当前版本的Mac OS X)开始.
但它似乎确实适用于iOS.时间冗长并使用NSDateFormatter.

3> Mike Abdulla..:

另请注意,对于大多数情况,NSDateFormatter优先考虑其灵活性.

在许多应用程序中重复使用日期格式化程序也可以获得显着的性能优势.

推荐阅读
谢谢巷议
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有