kotowo
3/18/2017 - 1:10 AM

Swift 日付操作

Swift 日付操作

#Date コンピュータの内部表現で日付時刻を管理 #DateComponents 年や月、日、時間といったフィールドを個別に管理 各フィールドの値は、使用する暦によって異なる可能性がある。 #Calendar Calendar型のメソッドを経由して、DateオブジェクトとDateComponentsオブジェクトの中身を相互変換する

import Foundation

// dateの月の月末月初めを計算します。
let date = Date()

let calendar = Calendar(identifier: .gregorian)
// 年月日時分秒のDateComponentsを作る(この時点ではdateと一致したものになっている)
var comp = calendar.dateComponents([.year, .month, .day, .hour, .minute, .second], from: date)

// ここで1日の0時0分0秒に設定します
comp.day = 1
comp.hour = 0
comp.minute = 0
comp.second = 0

// DateComponentsをDateに変換します
let monthBeginningDate = calendar.date(from: comp)

// その月が何日あるかを計算します
let range = calendar.range(of: .day, in: .month, for: date)
let lastDay = range?.count

// ここで月末に日を変えます
comp.day = lastDay

let monthEndDate = calendar.date(from: comp)
import Foundation

// 現在の日時を取得
var now = Date()

// システムのカレンダーを取得(デフォルトのカレンダーだとシステムのロケールによって異なる結果になる可能性があるため西暦を指定)
var cal = Calendar(identifier: .gregorian)
cal.locale = Locale(identifier: "ja_JP")

// 現在時刻のDateComponentsを取り出す
var dataComps = cal.dateComponents([.year, .month, .day, .hour, .minute], from: now)

print("\(dataComps.year!)年\(dataComps.month!)月\(dataComps.day!)日 \(dataComps.hour!)時\(dataComps.minute!)分")