我已经环顾了一下,但没有在swift 3中找到快速的答案。我今天平日得到这样的:
let weekday = Calendar.current.component(.weekday, from: Date())
但相反,我想获得给定日期的工作日。 这是怎么做到的? 感谢名单
答案 0 :(得分:50)
大概你已经有Date
了吗?
let weekday = Calendar.current.component(.weekday, from: myDate)
也许你想要工作日的名字?
let f = DateFormatter()
f.weekdaySymbols[Calendar.current.component(.weekday, from: Date())]
如果您需要有关DateComponents api的帮助,请调查NSCalendar
/ DateComponents
api或编辑您的问题以使其更具体。
答案 1 :(得分:36)
let date = Date()
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "dd-MM-yyyy"
dateFormatter.dateFormat = "EEEE, MMMM dd, yyyy"
let currentDateString: String = dateFormatter.string(from: date)
print("Current date is \(currentDateString)")
当前日期是2017年6月29日星期一
答案 2 :(得分:0)
要获取本地格式,可以使用:
extension Date{
func stringValueFullWithTime()-> String?{
let dateFormatter = DateFormatter()
dateFormatter.dateStyle = .full
dateFormatter.timeStyle = . short
dateFormatter.locale = Locale.current
return dateFormatter.string(from: self)
}
这将以德语显示:
Sonntag,2018年11月11日,晚上11:17
答案 3 :(得分:0)
如果要在TimeZone中使用dayNumber组件
func dayNumberOfWeek() -> Int? {
let timeZone = TimeZone(abbreviation: "EDT")
let component = Calendar.current.dateComponents(in: timeZone!, from: self)
return component.day
}
答案 4 :(得分:0)
Swift4从DateFormatter获取工作日
func getTodayWeekDay()-> String{
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "EEEE"
let weekDay = dateFormatter.string(from: Date())
return weekDay
}
答案 5 :(得分:0)
工作日默认将第一个工作日视为星期日,如果您想支持通用上下文,请使用此扩展。
extension Date {
var calendar: Calendar { Calendar.current }
var weekday: Int {
(calendar.component(.weekday, from: self) - calendar.firstWeekday + 7) % 7 + 1
}
}