Получить будний день с даты - Swift 3
Я немного огляделся, но не нашел быстрый ответ для этого в быстром 3. Я получаю будний день следующим образом:
let weekday = Calendar.current.component(.weekday, from: Date())
Но вместо этого я хотел бы получить будний день определенной даты.
Как это делается?
Thanx
Ответы
Ответ 1
Предположительно, у вас уже есть Date
?
let weekday = Calendar.current.component(.weekday, from: myDate)
Может быть, вам нужно название дня недели?
let f = DateFormatter()
f.weekdaySymbols[Calendar.current.component(.weekday, from: Date())]
Изучите NSCalendar
/DateComponents
api или отредактируйте свой вопрос, чтобы быть более конкретным, если вам нужна помощь с DateComponents api.
Ответ 2
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)")
Текущая дата - понедельник, 29 июня 2017 г.
Ответ 3
Чтобы получить локальный формат, вы можете использовать:
extension Date{
func stringValueFullWithTime()-> String?{
let dateFormatter = DateFormatter()
dateFormatter.dateStyle = .full
dateFormatter.timeStyle = . short
dateFormatter.locale = Locale.current
return dateFormatter.string(from: self)
}
Это напечатает как немецкий локальный язык:
Sonntag, 11. ноября 2018 г 11:17
Ответ 4
Если вы хотите компонент dayNumber в TimeZone
func dayNumberOfWeek() -> Int? {
let timeZone = TimeZone(abbreviation: "EDT")
let component = Calendar.current.dateComponents(in: timeZone!, from: self)
return component.day
}
Ответ 5
Swift4 получает день недели от DateFormatter
func getTodayWeekDay()-> String{
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "EEEE"
let weekDay = dateFormatter.string(from: Date())
return weekDay
}