NSDate 完整样式但没有年份
我正在使用 iPhone 的 Objective C,并且有一个 NSDate,我想以完整的样式显示但没有年份。现在我正在使用下面的代码,但它也显示年份,但我不想要这样。因为我想以正确的区域格式显示日期,所以我不能只删除末尾的年份,因为在某些国家/地区,年份不会在末尾,而是在中间或开头。
NSDate *testdate = [NSDate date];
NSDateFormatter *dateFormattertest = [[NSDateFormatter alloc] init];
[dateFormattertest setDateStyle:NSDateFormatterFullStyle];
[dateFormattertest setTimeStyle:NSDateFormatterNoStyle];
NSString *formattedDateString = [dateFormattertest stringFromDate:testdate];
NSLog(formattedDateString);
In US this give me:
Thursday, January 14, 2010
In Sweden this give me:
torsdag, 2010 januari 14
对此有什么解决办法吗?还有一个问题,在哪里可以找到有关如何使用 NSDateFormatter 的 setDateFormat 的信息?我找不到有关 API 中不同字母代表什么的信息。
I'm working with Objective C for iPhone and have a NSDate that I want to display in full style but without the year. Right now I'm using the code below but it also show the year, and I don't want that. As I want to show the date in the right region format I cannot just delete the year in the end as in some countries the year will not be in the end but in the middle or beginning.
NSDate *testdate = [NSDate date];
NSDateFormatter *dateFormattertest = [[NSDateFormatter alloc] init];
[dateFormattertest setDateStyle:NSDateFormatterFullStyle];
[dateFormattertest setTimeStyle:NSDateFormatterNoStyle];
NSString *formattedDateString = [dateFormattertest stringFromDate:testdate];
NSLog(formattedDateString);
In US this give me:
Thursday, January 14, 2010
In Sweden this give me:
torsdag, 2010 januari 14
What is the solution for this? And another question, where can I find information on how to use the setDateFormat of NSDateFormatter? I can't find information about what different letters stand for in the API.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(6)
我知道这是一个很老的问题,但这是我在 SO 上发现的唯一一个谈论我遇到的相同问题的问题。
这里使用的关键方法是:dateFormatFromTemplate
而不是设置样式,而是这样设置格式:
特别感谢:http://oleb.net/blog/2011/11/working-with-date-and -可可时间-第2部分/
I know this is a pretty old question but this is the only one I found on SO that talked about the same issue I was having.
The key method to use here is: dateFormatFromTemplate
Instead of setting the style, you want to set the format as such:
Special thanks to: http://oleb.net/blog/2011/11/working-with-date-and-time-in-cocoa-part-2/
Swift 3
使用
template
来满足您的需求。此处的文档和示例可帮助您确定你想要的图案。
Swift 3
Play with
template
to match your needs.Doc and examples here to help you determine the pattern you want.
@Joss 对 Swift 扩展给出了很好的答案:
Took @Joss great answer to a Swift extension:
斯威夫特4
Swift 4
Swift 5
来自@Joss 的回复:
Swift 5
From @Joss reply:
这是在标签上仅显示月份日期的快速选项:
Here's a swift option to show just Month Date on a Label: