Swift 日期格式化程序不是';t使用格式时显示正确的月份日期;DD";
我试图将今天的日期显示为3月26日,但当我使用此代码时,它显示为“3月85日”Swift 日期格式化程序不是';t使用格式时显示正确的月份日期;DD";,swift,date,time,formatter,Swift,Date,Time,Formatter,我试图将今天的日期显示为3月26日,但当我使用此代码时,它显示为“3月85日” let formatter = DateFormatter() formatter.dateFormat = "MMMM DD" let defaultTimeZoneStr = formatter.string(from: Date()) 问题是您使用了错误的日期格式D表示“一年中的某一天”。“月日”的正确符号是小写的d,这就是为什么您得到的是85,而不是26 您应该考虑的另一点是,如果您不希望日期字符串反映用户
let formatter = DateFormatter()
formatter.dateFormat = "MMMM DD"
let defaultTimeZoneStr = formatter.string(from: Date())
问题是您使用了错误的日期格式<代码>D表示“一年中的某一天”。“月日”的正确符号是小写的
d
,这就是为什么您得到的是85
,而不是26
您应该考虑的另一点是,如果您不希望日期字符串反映用户设置和区域设置,请将您的区域设置固定到<代码>“EnU.SuxPOSIX”。 请注意,您应该使用Swift本机类型
Date
,而不是NSDate
如果要根据用户区域设置和设置显示,则应使用日期格式化程序dateStyle
(短、中、长或全)
如果您需要本地化的日期格式,则限制为
仅限月和日,您可以使用模板中的DateFormatter
方法dateFormat:
class func dateFormat(从模板tmplate:String,选项opts:Int,locale:locale?->String?
let df = DateFormatter()
df.dateFormat = DateFormatter.dateFormat(fromTemplate: "MMMMdd", options: 0, locale: .current)
df.string(from: Date()) // "March 27"