Swift Date 時 分 秒 切り捨て

Swift Date 時 分 秒 切り捨て

Swift Date Calendarを使った時 分 秒 を切り捨てたい場合の コード例です。

日付のみを取り出す場合

let d = Date() //今
let x = Calendar.current.startOfDay(for: d) //日付のみを取り出す

秒 や 分 のみを 切り捨てる場合

let d = Data()
let calendar = Calendar(identifier: .gregorian)
let dateComponents = calendar.dateComponents([.year, .month, .day, .hour, .minute], from: d)
let x = calendar.date(from: dateComponents)

上↑のコード例は 秒を 切り捨てています。 分まで切り捨てたい場合は、 dateComponents()部分の .minuteを消します。

CalendardateComponents 第一引数は Set<Calendar.Component>です。

enum Component には下記があります

.era, .year, .month, .day, .hour, .minute, .second
.weekday,.weekdayOrdinal,.quarter,.weekOfMonth,.weekOfYear
.yearForWeekOfYear,.nanosecond,.calendar,.timeZone

Swift UTF8 CSVファイル 先頭にBOMをつける

utf8テキストファイルにBOMをつける

Swift (macOS) で、 UTF-8のCSVファイルを出力する場合、 そのままExcelで開くと文字化けします。 UTF-8のCSVファイルにはBOMをつける必要があります。

下記は、 BOMをつけるコード例です。

if let strm = OutputStream(toFileAtPath: "CSVファイルパス.csv", append: false){
	strm.open()
	let BOM = "\u{FEFF}"
	strm.write(BOM, maxLength: 3)
}

先にFileManager (createFile) で 空っぽのファイルを作っておく必要はあると思います。

2022 MJELD TECHNOLOGIES. ALL RIGHTS RESERVED