Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Swift 日期格式化程序不是';t使用格式时显示正确的月份日期;DD";_Swift_Date_Time_Formatter - Fatal编程技术网

Swift 日期格式化程序不是';t使用格式时显示正确的月份日期;DD";

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 您应该考虑的另一点是,如果您不希望日期字符串反映用户

我试图将今天的日期显示为3月26日,但当我使用此代码时,它显示为“3月85日”

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"