Upgrade to Pro — share decks privately, control downloads, hide ads and more …

20161226 日付のあれこれ

Kei Ito
December 26, 2016

20161226 日付のあれこれ

関モバ #21の資料です

Kei Ito

December 26, 2016
Tweet

More Decks by Kei Ito

Other Decks in Programming

Transcript

  1. ೔෇ͷ͋Ε͜Ε
    ؔ੢ϞόΠϧΞϓϦݚڀձ
    !JUPL@UXJU

    View Slide

  2. !JUPL@UXJU
    w ͍ͱ͏͚͍ʢJUPLʣ
    w ɹɹɹɹɹɹͷதͷਓ
    w ެࢲڞʹϓϩάϥϚJ04.BDʢͨ·ʹ"OESPJE΍8JOEPXTʣ
    w IUUQJUPLKQ IUUQTPSBLB[FDPKQ

    View Slide

  3. ,PUMJO͸͡Ί·ͨ͠

    View Slide

  4. ೔෇ͷ͋Ε͜Ε
    J04NBD04UW04ڞ௨

    View Slide

  5. ओͳΫϥεͨͪ
    w %BUF'PSNBUUFS
    w *40%BUF'PSNBUUFS
    w %BUF*OUFSWBM'PSNBUUFS
    w %BUF$PNQPOFOUT'PSNBUUFS
    w $BMFOEBS
    w %BUF$PNQPOFOUT
    w %BUF*OUFSWBM

    View Slide

  6. %BUF'PSNBUUFS
    *40%BUF'PSNBUUFS
    %BUF'PSNBUUFS %BUF*OUFSWBM'PSNBUUFS
    %BUF$PNQPOFOUT'PSNBUUFS
    'PSNBUUFS

    View Slide

  7. let formatter = DateFormatter()
    formatter.locale = Locale(identifier: "ja_JP")
    formatter.setLocalizedDateFormatFromTemplate("yMMMMd")
    formatter.string(from: date)
    // 2016೥12݄26೔
    let formatter = DateFormatter()
    formatter.locale = Locale(identifier: “fr_FR")
    formatter.setLocalizedDateFormatFromTemplate("yMMMMd")
    formatter.string(from: date)
    // 26 décembre 2016
    let formatter = DateFormatter()
    formatter.locale = Locale(identifier: "ja_JP")
    formatter.calendar = Calendar(identifier: .japanese)
    formatter.setLocalizedDateFormatFromTemplate("GyMd")
    formatter.string(from: date)
    // ฏ੒28೥12݄26೔
    %BUF'PSNBUUFS

    View Slide

  8. let formatter = ISO8601DateFormatter()
    formatter.string(from: date)
    // 2016-12-26T04:23:50Z
    formatter.formatOptions =
    [.withFullDate, .withFullTime, .withSpaceBetweenDateAndTime]
    formatter.string(from: date)
    // 2016-12-26 04:23:50Z
    *40%BUF'PSNBUUFS

    View Slide

  9. let formatter = DateIntervalFormatter()
    formatter.string(from: now, to: future)
    // 2016/12/26 19࣌00෼ʙ21࣌00෼
    formatter.dateTemplate = "Hm"
    formatter.string(from: now, to: future)
    // 19࣌00෼ʙ21࣌00෼
    %BUF*OUFSWBM'PSNBUUFS

    View Slide

  10. %BUF$PNQPOFOUT'PSNBUUFS
    let formatter = DateComponentsFormatter()
    formatter.string(from: now, to: future)
    // 1೔ 5:27:50
    formatter.allowedUnits = [.hour, .minute]
    formatter.string(from: now, to: future)
    // 29:27
    comp.includesApproximationPhrase = true
    comp.string(from: now, to: future)
    // About 29:27

    View Slide

  11. $BMFOEBS
    // ࠓ೔ʁ
    calendar.isDateInToday(date)
    // ಉ͡೔ʁ
    calendar.isDate(date, inSameDayAs: future)
    // ͦͷ೔ͷ಄
    calendar.startOfDay(for: date)

    View Slide

  12. let interval = DateInterval(start: date, end: future)
    intervalFormatter.string(from: interval)
    // 2016/12/26 19࣌00෼ʙ21࣌00෼
    ॏͳ͍ͬͯΔ͔
    interval.intersects(interval2)
    // ॏͳΓ෦෼Λநग़
    interval.intersection(with: interval2)
    %BUF*OUFSWBM

    View Slide

  13. ·ͱΊ
    w ೔෇ॲཧ͸݁ߏେม
    w J04͘Β͍͔Β͍ͣͿΜͱָʹͳͬͨ
    w ৽͍͠ΫϥεͱϝιουΛศརʹ࢖͍ͬͯ͜͏ʂ

    View Slide