NSDateFormatter"Month"用3个字母代替完整单词

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];

  • 也许你是对的,我正在尝试五月.应该使用不同的月份,但我在模拟器上...... (11认同)
  • 哈哈哈,"梅"是唯一一个对此进行测试的非决定性月份. (8认同)
  • M给我号码MMM给了我全文 (3认同)

小智 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等)


Cod*_*der 7

这是一个精简的解决方案,可与 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这是获取所需月份输出的正确语法。


hel*_*ikh 6

SWIFT中

let dateFormatter = NSDateFormatter()

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

dateFormatter.stringFromDate(NSDate())
Run Code Online (Sandbox Code Playgroud)