Swift Dateを取得可能なDateComponentsを生成する

calendarプロパティを設定する、しないで結果が変わる
calendarプロパティは必要

ドキュメントより(DeepL翻訳)

注意
DateComponentsを使用するAPIは、この値がnilの場合、異なる動作をする可能性がある。
例えば、現在のカレンダーを想定したり、特定の値を無視したりするなどである。

import Foundation
var dateComponents = Calendar.current.dateComponents(in: .current, from: Date.now)
print("----- from Calendar -----")
print(dateComponents)
print("----- init DateComponents -----")
var dateComponentsInit = DateComponents()
dateComponentsInit.year = 2024
dateComponentsInit.month = 12
dateComponentsInit.day = 31
dateComponentsInit.hour = 23
dateComponentsInit.minute = 59
dateComponentsInit.second = 59
dateComponentsInit.timeZone = .current
print("----- not Calendar -----")
print(dateComponentsInit)
print("Date:\(dateComponentsInit.date)")
dateComponentsInit.calendar = Calendar.current
print("----- add Calendar -----")
print(dateComponentsInit)
print("Date:\(dateComponentsInit.date)")

SwiftSwift

Posted by shi-n