bru*_*uno 29 date monthcalendar nsdate nsdateformatter ios
NSDateFormatter* formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"dd-MM-YYYY HH:mm"];
[formatter setTimeZone:[NSTimeZone systemTimeZone]];
Run Code Online (Sandbox Code Playgroud)
如果我选择"MM",我会得到月份的数字:"09-05-2012 15:33"如果我选择"MMMM"我会得到一个月的字:"09-May-2012 15:33"
我想要的是3个字母缩写中的月份.
例如:"1月"将是"1月"
在这种情况下,May是正确的,因为它只有3个字母.
gra*_*ver 50
你试过了吗?[formatter setDateFormat:@"dd-MMM-YYYY HH:mm"];然后[formatter stringFromDate:someNSDate];
小智 26
如果你得到错误顺序的两件事,你就得不到预期的输出.
[formatter setDateFormat:@"MMM"];
[formatter setDateStyle:NSDateFormatterMediumStyle];
Run Code Online (Sandbox Code Playgroud)
不会给出相同的结果:
[formatter setDateStyle:NSDateFormatterMediumStyle];
[formatter setDateFormat:@"MMM"];
Run Code Online (Sandbox Code Playgroud)
(这两个片段中的第二个现在很乐意在我的应用程序中发布Sep Oct等)
这是一个精简的解决方案,可与 Swift 4 一起生成 3 个字母的月份输出:
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "dd MMM YYYY, HH:mm:ss"
Run Code Online (Sandbox Code Playgroud)
并验证:
print(dateFormatter.string(from: Date())) // 20 Mar 2018, 23:41:40
Run Code Online (Sandbox Code Playgroud)
如前所述,MMM这是获取所需月份输出的正确语法。
在SWIFT中
let dateFormatter = NSDateFormatter()
dateFormatter.dateFormat = "dd MMM yyyy HH:mm"
dateFormatter.stringFromDate(NSDate())
Run Code Online (Sandbox Code Playgroud)