質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
date

dateは、date型や日付に関する関数や処理についてのタグです

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

Q&A

解決済

1回答

3273閲覧

Swift ロケールをja_JPにしてるのにDateFormatterで曜日(EEEE)が英語になってしまう

popai306

総合スコア157

date

dateは、date型や日付に関する関数や処理についてのタグです

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

0グッド

0クリップ

投稿2020/08/14 07:34

やりたいこと

DateFormatterを使って曜日を日本語で取得したい

ソースコード

swift

1var df = DateFormatter() 2df.dateFormat = DateFormatter.dateFormat(fromTemplate: "EEEE", options: 0, locale: .current) 3print("(df.string(from: Date()))") // -> Fridayとかになってしまうが、金曜日と出てほしい、、、(泣)

ちなみにLocaleをLocale(identifier: "ja_JP")と指定してもだめです><

どなたか教えて下さい〜

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

swift

1var df = DateFormatter() 2df.locale = Locale(identifier: "ja_JP") 3df.dateFormat = "cccc" 4print("(df.string(from: Date()))")

上記で、playgroundで、"金曜日"と出力されました。

df.localeでロケールを指定して、df.dateFormatに変換するときのフォーマット文字列を指定すると、それらに従ってdf.string(from:)で整形された文字列が得られます。

フォーマット文字列は、こちらに詳細な定義がありますが、どういう形式にするかを指定するものです。

DateFormatter.dateFormat(fromTemplate: "EEEE", options: 0, locale: Locale(identifier: "ja_JP"))は、"cccc"という値を返してきます。
このクラスメソッドは、指定したロケールに最適なフォーマット文字列を返すものです。ここでのロケールはフォーマット文字列を選ぶのに適用され、実際に変換するときのロケールを指定しているのではありません。
変換するときのロケールは、DateFormatterlocaleに指定します。

なお、上記ページをみると、"EEEE"も"cccc"も同じ結果が得られるので、どちらでもよいと思います。

投稿2020/08/14 08:15

編集2020/08/14 13:50
eytyet

総合スコア803

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

popai306

2020/08/14 08:49

ほんとだ、ありがとうございます。 dateFormatで指定してるLocaleって効いてないんですね。
eytyet

2020/08/14 13:50

すいません。回答がいい加減すぎたので、書き直しました。疑問が解消されているとよいのですが。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問