web-dev-qa-db-ja.com

日付から平日を取得-Swift 3

私は少し調べましたが、Swift 3.でこれに対する簡単な答えを見つけられませんでした。

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

しかし、代わりに、特定の日付の平日を取得したいと思います。これはどのように行われますか?ありがとう

29
Martin Vidic

おそらくあなたはDateをすでに持っていますか?

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

たぶん、あなたは平日の名前が欲しいですか?

let f = DateFormatter()

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

DateComponents APIのヘルプが必要な場合は、NSCalendar/DateComponents AP​​Iを調査するか、質問をより具体的に編集してください。

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)")

現在の日付は2017年6月29日月曜日です

44
Yakup Ad

TimeZoneのdayNumberコンポーネントが必要な場合

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

Swift4はDateFormatterから平日を取得します

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

ローカル形式を取得するには、次を使用できます。

extension Date{

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

これはドイツ語のローカルとして印刷されます:
ソンタグ、2018年11月11日、午前11時17分

1
Yedy