首页 > 解决方案 > 如何将 DateComponents 格式化为部分日期字符串?

问题描述

我有一个DateComponents包含一个月和一年的对象,我想从中获取格式为“2021 年 3 月”的字符串。我已经尝试过DateComponentsFormatter,但没有一个属性能接近我想看到的。

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吗?

标签: swiftnsdatecomponentsnsdatecomponentsformatter

解决方案


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/在这里你可以看到如何以不同的方式格式化日期。


推荐阅读