NSDateFormatter* formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"dd-MM-YYYY HH:mm"];
[formatter setTimeZone:[NSTimeZone systemTimeZone]];
如果我选择MM
我会得到月份的数量:09-05-2012 15:33
如果我选择MMMM
我会在单词中显示月份:09-May-2012 15:33
我想要的是3个字母缩写的月份
例如:January
将为Jan
在这种情况下,May是正确的,因为它只有3个字母。
答案 0 :(得分:50)
您是否尝试过:[formatter setDateFormat:@"dd-MMM-YYYY HH:mm"];
然后[formatter stringFromDate:someNSDate];
答案 1 :(得分:26)
如果你得到错误顺序的两件事,你就得不到预期的输出。
[formatter setDateFormat:@"MMM"];
[formatter setDateStyle:NSDateFormatterMediumStyle];
不会给出与以下相同的结果:
[formatter setDateStyle:NSDateFormatterMediumStyle];
[formatter setDateFormat:@"MMM"];
(这两个片段中的第二个现在很乐意在我的应用程序中发布Sep Oct等)
答案 2 :(得分:5)
在 SWIFT
中let dateFormatter = NSDateFormatter()
dateFormatter.dateFormat = "dd MMM yyyy HH:mm"
dateFormatter.stringFromDate(NSDate())
答案 3 :(得分:3)
这是一个简化的解决方案,可与Swift 4一起生成3个字母的月份输出:
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "dd MMM YYYY, HH:mm:ss"
并验证:
print(dateFormatter.string(from: Date())) // 20 Mar 2018, 23:41:40
如前所述,MMM
是获取所需月份输出的正确语法。
答案 4 :(得分:1)
实际上你可以将dateStyle设置为medium(即'Jan','Feb'等),如下所示:
[formatter setDateStyle:NSDateFormatterMediumStyle];
答案 5 :(得分:1)
对于swift 4来说:
if let dateFormatter = DateFormatter(){
dateFormatter.dateStyle = .medium
// eventually:
//let locale = Locale(identifier: ...
//dateFormatter!.locale = locale
dateFormatter.dateStyle = .medium
dateFormatter!.dateFormat = "dd MMM YYYY, HH:mm:ss"
} else..
..
答案 6 :(得分:0)
对于那些没有通过“ MMM”获得整整一个月收入的人,可以通过
获得dateFormatter.dateFormat = "dd MMMM yyyy"
在Swift 4.2上测试