NSDateFormatter“月” 3个字母,而不是完整的单词(NSDateFormatter “

2019-07-29 08:15发布

    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个字母缩写的月份。
例如: JanuaryJan

在这种情况下,五月是正确的,因为它只有3个字母。

Answer 1:

您是否尝试过: [formatter setDateFormat:@"dd-MMM-YYYY HH:mm"]; 然后[formatter stringFromDate:someNSDate];



Answer 2:

如果你在错误的顺序两件事情,你没有得到预期的输出。

[formatter setDateFormat:@"MMM"];
[formatter setDateStyle:NSDateFormatterMediumStyle];

不给相同的结果:

[formatter setDateStyle:NSDateFormatterMediumStyle];
[formatter setDateFormat:@"MMM"];

(这两个片段的第二个现在高兴地发放九月十月等在我的应用程序)



Answer 3:

SWIFT

let dateFormatter = NSDateFormatter()

dateFormatter.dateFormat = "dd MMM yyyy HH:mm"

dateFormatter.stringFromDate(NSDate())


Answer 4:

这是一个精简的解决方案,在生产3个字母的月产量与斯威夫特4的工作原理:

let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "dd MMM YYYY, HH:mm:ss"

并验证:

print(dateFormatter.string(from: Date())) // 20 Mar 2018, 23:41:40

如前所述, MMM是获取所需月份输出正确的语法。



Answer 5:

其实您可以将DATESTYLE设置为中(即“一月”,“二月”等)是这样的:

[formatter setDateStyle:NSDateFormatterMediumStyle];


Answer 6:

为迅速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..
        ..


文章来源: NSDateFormatter “Month” in 3 letters instead of full word