1
次のコードは、その最初の日に現在の年を設定することになった。設定カレンダー単位、月年
import UIKit
private func getYearStartDate() -> NSDate {
let calendar = NSCalendar.currentCalendar()
var date = calendar.dateBySettingHour(0, minute: 0, second: 0, ofDate: NSDate(), options: [])
date = calendar.dateBySettingUnit(.Month, value: 1, ofDate: date!, options: [])
date = calendar.dateBySettingUnit(.Day, value: 1, ofDate: date!, options: [])
return date!
}
print("startdate=\(getYearStartDate())")
print("enddate=\(NSDate())")
しかし、私はそれを検査する場合、値は最初の日に設定されています来年。
私の結果:私は期待し
startdate=2017-01-01 02:00:00 +0000
enddate=2016-09-06 13:44:06 +0000
結果:メソッドNSCalendar
のnextDateAfterDate:matchingComponents:options:
は、その目的のために、より適している
startdate=2016-01-01 02:00:00 +0000
enddate=2016-09-06 13:44:06 +0000
あなたはどんな価値がありますか?それは私にとって正しい結果をもたらします。 'print(date)'はあなたのローカルタイムゾーンではなく、UTCで日付を出力することに気づいていますか? –
私は質問に値を含めました。 'print'のUTCは実際問題ではありません。 –
開始日、終了日は何ですか? printステートメントを含む、再現可能な、自己完結型の例を投稿してください。 –