我试图获得给定日期对象的工作日。但它总是返回+1值。 例如:如果我给出的日期为:2017-06-01 18:30:00 +0000
它返回工作日6 - >星期五 它应该是工作日5 - >周四
我的代码:
let calendar = Calendar.current
let day: Int = calendar.component(.weekday, from: self.month!)
print ("---------")
print(self.month!)
print (day)
switch day {
case 1:print("Sunday")
case 2:print("Monday")
case 3:print("Tuesday")
case 4:print("Wednesday")
case 5:print("Thursday")
case 6:print("Friday")
case 7:print("Saturday")
default:
break
}
控制台上的输出:(我已经给出了两个错误的日期)
---------
2016-01-01 18:30:00 +0000
7
Saturday
---------
2017-06-01 18:30:00 +0000
6
Friday
我犯了错误...... 谢谢。
答案 0 :(得分:0)
从我的角度来看,创建扩展名为Date
,使用起来更为明确:
extension Date {
func weekday() -> Int? {
return Calendar.current.dateComponents([.weekday], from: self).weekday
}
}
print(Date().weekday()!)
示例:
let dateFormatter = DateFormatter()
dateFormatter.calendar = Calendar(identifier: .gregorian)
dateFormatter.dateFormat = "yyyy-MM-dd HH:mm:ssZ"
let date = dateFormatter.date(from: "2017-06-01 18:30:00 +0000")
print(date?.weekday()!) //5 In Ukraine