Skip to content

Instantly share code, notes, and snippets.

@motooka
Created December 26, 2016 01:07
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save motooka/ba29ce3a1cbd3b5c97e667a8e99ced92 to your computer and use it in GitHub Desktop.
Save motooka/ba29ce3a1cbd3b5c97e667a8e99ced92 to your computer and use it in GitHub Desktop.
NSDateFormatterでの うるう秒 の動作確認
//: Playground - noun: a place where people can play
import UIKit
var str = "Hello, playground"
// =================
// === サーバなどから受領した日付データ(文字列)という想定
// =================
var dateStr = ""
dateStr = "2016-12-31T23:59:59Z"
//dateStr = "2016-12-31T23:59:60Z"
//dateStr = "2017-01-01T00:00:00Z"
//dateStr = "2017-01-01T08:59:59+0900"
//dateStr = "2017-01-01T08:59:60+0900"
//dateStr = "2017-01-01T09:00:00+0900"
// =================
// === 与えられた日付文字列をパースしてみる
// === (59分60秒 という表現がパースできないことの確認)
// =================
// let formatter = ISO8601DateFormatter()
let formatter = DateFormatter()
formatter.dateFormat = "YYYY-MM-DD'T'HH:mm:ssZZZZZ"
formatter.timeZone = TimeZone(abbreviation: "UTC")
//formatter.timeZone = TimeZone(abbreviation: "JST")
let date = formatter.date(from: dateStr)
// =================
// === パース成功してたら1秒足してみる
// === (59分59秒に1秒足しても60秒にはならないことの確認)
// =================
if date != nil {
str = "パース成功😎"
let datePlus1sec = date!.addingTimeInterval(1.0)
formatter.string(from: datePlus1sec)
}
else {
str = "パース失敗😇"
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment