我可以用这种格式打印日期:周一,2018年3月19日,但我不知道如何以这种格式获得星期几。
请帮忙
答案 0 :(得分:6)
获取特定日期的日期:
let customDateFormatter = DateFormatter()
print(customDateFormatter.weekdaySymbols[Calendar.current.component(.weekday, from: Date())])
//"星期三"
答案 1 :(得分:4)
let dateFormatter = DateFormatter()
// uncomment to enforce the US locale
// dateFormatter.locale = Locale(identifier: "en-US")
dateFormatter.setLocalizedDateFormatFromTemplate("EEE MMM d yyyy")
print(dateFormatter.string(from: Date())) // "Tue, Mar 20, 2018" for en-US locale
请注意,我使用模板提供确切的格式,因此格式将在每种语言中正确本地化。
答案 2 :(得分:2)
使用swift 4
func timeStamp()->String {
let dateFormater = DateFormatter()
dateFormater.locale = Locale(identifier: "en-US")
dateFormater.setLocalizedDateFormatFromTemplate("EEE MMM d yyyy")
return dateFormatter.string(from: Date())
}
使用它。
let getTimeStamp = timeStamp()
print(getTimeStamp)
答案 3 :(得分:0)
dateFormatter.dateFormat =" EEE,MMM dd,yyyy"
对于字母表中的星期数,您使用的EEEE或EEE类似于MMM& yyyy为一个月。
答案 4 :(得分:0)
更改日期的最佳方法是遵循此方法。
func ChangeDateFormat(date:String,FromFormat: String, ToFormat: String) -> String {
let dateFormatter1 = DateFormatter()
dateFormatter1.dateFormat = FromFormat
let myDate = dateFormatter1.date(from: date)
dateFormatter1.dateFormat = ToFormat
if(myDate != nil){
let Date = dateFormatter1.string(from: myDate!)
return Date
}
else{
return ""
}
}
然后您可以使用此方法,如
String(ChangeDateFormat(date: StartDate, FromFormat: "yyyy-MM-dd hh:mm:ss a", ToFormat: "MMM d, yyyy"))
您可以传递您想要的格式的日期格式
String(ChangeDateFormat(date: StartDate, FromFormat: "Pass your date format", ToFormat: "EEE MMM d, yyyy"))
答案 5 :(得分:0)
无需拼写日期格式。我将进一步简化为:
dateFormatter.dateStyle = .full
或者,如果您只想要这一天:
dateFormatter.dateFormat = "EEEE"