如何将 DateComponents 格式化为部分日期字符串?

How to format DateComponents as a partial date string?

我有一个包含月份和年份的 DateComponents 对象,我想从中得到一个样式为 'March 2021' 的格式化字符串。我已尝试 DateComponentsFormatter,但 none 的属性接近我希望看到的内容。

let components = DateComponents(calendar: .current, timeZone: .current, year: 2021, month: 3, day: nil)
let formatter = DateComponentsFormatter()
let string = formatter.string(from: components) // Optional("2,021y 3mo")

这可以从 DateComponents 开始吗?

let date = Calendar.current.date(from: DateComponents())
var formatter = DateFormatter()
formatter.dateFormat = "MMMM yyyy"
print(formatter.string(from: date))

这几乎就是您需要做的事情

let components = DateComponents(calendar: .current, timeZone: .current, year: 2021, month: 3, day: nil)
let date = calendar.current.date(from: components)
let formatter = DateFormatter()
formatter.dateFormat = "MMMM yyyy"
let string = formatter.string(from: date)

https://nsdateformatter.com/ 在这里你可以看到如何以不同的方式格式化日期。