0Pricing
Swift Academy · レッスン

日付の書式設定

最新の書式設定APIで日付を表示します。

「日付の書式設定」はCoddyKit上の無料Swift Academyレッスンです。 これはレッスン3/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはSwift Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Swift Academyコースには全4レッスンが含まれています。

日付のフォーマット

生のDateの値は人間には読みづらい形式です。Swiftの最新のFormatStyle APIを使うと、ローカライズされた文字列にきれいに変換できます。

formatted()メソッド

日付に.formatted()を呼び出すと、ユーザーのロケールに適したデフォルトの文字列が得られます。

import Foundation

let now = Date()
let text = now.formatted()
print("Produced a string: \(!text.isEmpty)")

Date.FormatStyle

Date.FormatStyleを渡すと、表示する項目を制御できます。日付と時刻のスタイルはそれぞれ独立して選択できます。

import Foundation

let now = Date()
let s = now.formatted(date: .abbreviated, time: .omitted)
print("Has date only: \(!s.isEmpty)")

日付と時刻のスタイル

date:とtime:のパラメーターには、.full、.long、.abbreviated、.numeric、.omittedを指定できます。

import Foundation

let now = Date()
let full = now.formatted(date: .complete, time: .shortened)
print(!full.isEmpty)

コンポーネントによるカスタマイズ

.dateTimeスタイルを使うと、.year().month().day()のように、必要なフィールドだけを正確に組み合わせられます。

import Foundation

let now = Date()
let s = now.formatted(.dateTime.year().month().day())
print("Custom fields: \(!s.isEmpty)")

フィールド幅の選択

各コンポーネントにはオプションを指定できます。たとえば、.month(.wide)は完全な月名を、.month(.twoDigits)は数字形式を使用します。

import Foundation

let now = Date()
let s = now.formatted(.dateTime.month(.wide).year())
print(!s.isEmpty)

時刻のみ

日付が明らかな場合は、.hour().minute()のように時刻のフィールドだけを組み合わせられます。

import Foundation

let now = Date()
let t = now.formatted(.dateTime.hour().minute())
print("Time string: \(!t.isEmpty)")

相対フォーマット

RelativeFormatStyleは、現在時刻を基準に「2時間後」や「昨日」のような表現を生成します。

import Foundation

let soon = Date().addingTimeInterval(3600)
let rel = soon.formatted(.relative(presentation: .named))
print("Relative phrase produced: \(!rel.isEmpty)")

ISO 8601

機械可読な出力には、APIの標準的なデータ交換形式である.formatted(.iso8601)を使用します。

import Foundation

let now = Date()
let iso = now.formatted(.iso8601)
print("Contains T separator: \(iso.contains("T"))")

文字列の再解析

フォーマットスタイルは可逆的です。対応するストラテジーを使って、文字列をDateに解析できます。

import Foundation

let input = "2024-05-30T12:00:00Z"
if let date = try? Date(input, strategy: .iso8601) {
    print("Parsed: \(date.timeIntervalSince1970 > 0)")
}

FormatStyleとDateFormatterの比較

新しいFormatStyle APIは型安全で、従来のDateFormatterより少ないコードで記述できます。新しいコードではこちらを優先してください。

import Foundation

let now = Date()
print(now.formatted(date: .long, time: .omitted).isEmpty == false)

確認問題

時刻を省略して日付だけを表示する呼び出しはどれですか?

まとめ

FormatStyle APIでは、.formatted()、設定可能なdate:/time:スタイル、組み合わせ可能な.dateTimeフィールド、相対表現、ISO 8601を使って日付をフォーマットできます。解析にも使える可逆的な仕組みであり、DateFormatterより推奨されます。次は、タイムゾーンとロケールです。

よくある質問

「日付の書式設定」レッスンは無料ですか?

はい。「日付の書式設定」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Swift Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Swift Academyコースには全4レッスンが含まれています。

「日付の書式設定」で何を学びますか?

最新の書式設定APIで日付を表示します。 ブラウザで直接実行するハンズオンコードでSwift Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

Swift Academyを始めるのに経験は必要ですか?

事前経験は必要ありません。CoddyKitのSwift Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン3/4です。

「日付の書式設定」レッスンにはどのくらい時間がかかりますか?

ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。

このSwift Academyレッスンでコードを書いて実行できますか?

はい。すべてのSwift Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. Date型と時間間隔
  2. CalendarとDateComponents
  3. 日付の書式設定
  4. タイムゾーンとロケール
← Swift Academyに戻る