web-dev-qa-db-fra.com

Obtenir le jour de la semaine à partir de la date - Swift 3

J'ai regardé un peu autour de moi, mais je n'ai pas trouvé de réponse rapide à cela dans Swift 3. Je reçois aujourd'hui comme cela:

let weekday = Calendar.current.component(.weekday, from: Date())

Mais au lieu de cela, je voudrais obtenir le jour de la semaine d'une date donnée. Comment est-ce fait? Merci

29
Martin Vidic

Vous avez probablement déjà un Date?

let weekday = Calendar.current.component(.weekday, from: myDate)

Vous voulez peut-être le nom du jour de la semaine?

let f = DateFormatter()

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

Recherchez l'API NSCalendar/DateComponents ou modifiez votre question pour qu'elle soit plus spécifique si vous avez besoin d'aide avec l'API DateComponents.

56
Joe Daniels
let date = Date()
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "dd-MM-yyyy"
//OR dateFormatter.dateFormat = "EEEE, MMMM dd, yyyy"
let currentDateString: String = dateFormatter.string(from: date)
print("Current date is \(currentDateString)")

La date du jour est le lundi 29 juin 2017

44
Yakup Ad

Si vous voulez le composant dayNumber dans TimeZone

func dayNumberOfWeek() -> Int? {
    let timeZone = TimeZone(abbreviation: "EDT")
    let component =  Calendar.current.dateComponents(in: timeZone!, from: self)
    return  component.day
}
2
Devesh

Swift4 obtenir le jour de la semaine à partir de DateFormatter

 func getTodayWeekDay()-> String{
        let dateFormatter = DateFormatter()
        dateFormatter.dateFormat = "EEEE"
        let weekDay = dateFormatter.string(from: Date())
        return weekDay
  }
1
Sukhwinder Singh

Pour obtenir le format local, vous pouvez utiliser:

extension Date{

func stringValueFullWithTime()-> String?{
    let dateFormatter = DateFormatter()
    dateFormatter.dateStyle = .full
    dateFormatter.timeStyle = . short
    dateFormatter.locale = Locale.current
    return dateFormatter.string(from: self)
}

Cela va imprimer en allemand:
mercredi, 11 novembre 2018 à 11:17

1
Yedy