Kotlin
Multiplatformで日付を言語ロケールに合わせてフォーマットしたい場合はどうしたらいいでしょうか。
Kotlin Multiplatformで日時を扱うには kotlinx-datetime
ライブラリを利用することが一般的だと思います。このライブラリは基本的な日時操作機能を提供していますが、ロケールに合わせたフォーマット機能はありません。
expect/actualで実装する
現状では expect/actual
機構を使って、各プラットフォーム固有の日時フォーマットを実装するのが現実的です。
以下はその実装例です。
共通モジュールでの定義
まず、共通モジュールに機能を定義します。
// 共通モジュールに定義
class DateTimeFormatter() {
expect fun format(instant: Instant, timeZone: TimeZone): String
}
JVM(Android)実装
JVMプラットフォームではJava標準ライブラリの日時フォーマット機能を使います。