Swift の String(文字列)の変換とフォーマット

ここでは Swift の String(文字列)の変換とフォーマットの方法についてご説明します。


Swift で数値をフォーマットされた文字列に変換する

Swift で Double などの数値のデータ型の値を、フォーマットされた文字列に変換するには String のコンストラクタが使えます。

例えば、Double の数字を小数点第二位までなどの文字列にフォーマットしたいのであれば、次のようにできます。

第二引数の arguments を変換するのに Foundation をインポートする必要があります。

import Foundation

let value1:Double = 1234.5678
print(String(format: "%.0f", value1))
print(String(format: "%.1f", value1))
print(String(format: "%.2f", value1))

let value2:Double = 10
print(String(format: "%.0f", value2))
print(String(format: "%.1f", value2))
print(String(format: "%.2f", value2))

実行結果は次のようになります。値は四捨五入されます。

1235
1234.6
1234.57
10
10.0
10.00

Swift で文字列を数値に変換する

Swift で数字の文字列を数値に変換するには、数値型のコンストラクタが使えます。

例えば、Double に変換したいのであれば、次のようにできます。

戻り値は Optional になり、変換に失敗すると nil が返ります。

let s1 = "12345.678"
let d1 = Double(s1)
print(d1 ?? "Invalid Input")

let s2 = "ABC"
let d2 = Double(s2)
print(d2 ?? "Invalid Input")

実行結果は次のようになります。

12345.678
Invalid Input

Swift で日付をフォーマットされた文字列に変換する

Swift で日付を、フォーマットされた文字列に変換するには DateFormatter が使えます。

詳しくはこちらの「Swift で日付(Date)をフォーマットされた文字列(String)に変換する」をご覧ください。


Swift で文字列を日付に変換する

Swift で文字列 (String) を日付 (Date) に変換するにも、DateFormatter が使えます。

DateFormatter を使うので、Foundation をインポートする必要があります。

import Foundation

let dateString = "2021-10-22 22:34:54"

let df = DateFormatter()
df.dateFormat = "yyyy-MM-dd HH:mm:ss"

if let date = df.date(from: dateString) {
    print(date)
    print(type(of: date))
    print(df.string(from: date))
}

実行結果は次のようになります。

2021-10-23 05:34:54 +0000
Date
2021-10-22 22:34:54

5 行目で DateFormatter を生成して、6 行目で変換する文字列に合った dateFormat を設定しています。

8 行目が DateFormatter の date メソッドを使って、文字列から Date に変換しています。 変換に失敗すると nil が返ります。

実行結果の 1 行目は Date をそのまま出力したので UTC の時間になっています。 アメリカのロサンゼルスに住んでいるので +7 時間になり、タイムゾーンが +0000 になっています。ロケールの調整が必要な方は、DateFormatter に設定可能です。

実行結果の 2 行目で date 変数が Date 型なっていることが確認できます。 3 行目は date を同じ DateFormatter を使ってまた文字列に戻して出力しています。


以上、Swift の String(文字列)の変換とフォーマットの方法についてご説明しました。

© 2024 iOS 開発入門