如何从Swift中的某个日期获得一周中的某一天

时间:2018-03-20 10:39:04

标签: ios swift

我可以用这种格式打印日期:周一,2018年3月19日,但我不知道如何以这种格式获得星期几。

请帮忙

6 个答案:

答案 0 :(得分:6)

获取特定日期的日期:

let customDateFormatter = DateFormatter()

print(customDateFormatter.weekdaySymbols[Calendar.current.component(.weekday, from: Date())])

//"星期三"

source

答案 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"