NSDateFormatterの年数表示が12/27〜12/31の間だけ狂う


dateformatter

2015/12/27のタイムスタンプをNSDateFormatterに渡すと、1年後である2016/12/27として返ってきてしまう、という不具合で詰まりました。
2015/12/26のタイムスタンプだと再現せず、2015/12/27〜2016/12/31のタイムスタンプだと1年ズレてしまう不思議さ。。

解決方法

フォーマット文字列の YYYYyyyy に変更したら正しい年数表示になりました。

//formatter.dateFormat = "YYYY/MM/dd HH:mm"
formatter.dateFormat = "yyyy/MM/dd HH:mm"

問題を解決したコード

let formatter = NSDateFormatter()
formatter.timeZone = NSTimeZone.systemTimeZone()
let expiresDate = NSDate(timeIntervalSince1970: 1451185520)
formatter.dateFormat = "yyyy/MM/dd HH:mm"
print(formatter.stringFromDate(expiresDate))

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です