Project Unknown's Blog

Peojct.Unknownと言う名前で細々とアプリ開発をやってるメンバーのブログです。

Swift3で現在の日付・曜日を取得する方法

だいぶ久しぶりに更新します、どうまずです。

Swift3でいろいろ苦戦してまして、そんな苦悩の一部を記載しときます。

苦戦した点、それは「現在の日付・曜日を取得する。」です。

私の勉強不足か理解力不足か、ネットの記事を参考にしてもできなかったので、記載します。

多くのサイトを参考にすると、下記の記載がありましたので、とりあえずやってみました。

let now = NSDate()
print(now)

結果は 「2016-10-06 11:35:02 +0000」となりましたが、
時間がずれている。
テストしているシミュレータの時間かと思ったが違う様子・・・
どうやら、グリニッジ標準時間をとってしまうという仕様とのこと。

あと、NSCalendarだけを使うと記事が多いですが、私が悪いのかSwift3だからなのか、エラーになってしまい、利用を断念しました。

結局、NSCalendarとCalendarを組み合わせればいいようです。
曜日は下記のような記載で取得できました。

let comp = Calendar.Component.weekday
let weekday = NSCalendar.current.component(comp, from: NSDate() as Date)
print(weekday) // 1が日曜日 7が土曜日

Calendar.Component.yearに変えたら年が、hourに変更すれば時が取得できました。
時間を確認したところ、シミュレータが表示している通りの時間が取得できました。

ただし、私は曜日の配列を月曜からにしてしまったから、修正しなきゃ・・・