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

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

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

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

Q&A

解決済

1回答

1783閲覧

曜日を月、火、水…のように表示させたい

vitoyaokatsu

総合スコア12

Swift

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

0グッド

0クリップ

投稿2020/11/04 02:32

Mon、Tue,などと英語で表示されます。
月、火、水…のように表示するようにしたくて
以下のコードを
"en_JP"を
"ja_JP"と変更したのですが
なぜかうまくいきません。
シュミレーターの言語も日本語にしました。
お教えください。

Swift

1func getDateEText(isToday: Bool)->String { 2 3 let dayFormatter = DateFormatter() 4 5// dayFormatter.dateFormat = DateFormatter.dateFormat(fromTemplate: "E", options: 0, locale: Locale(identifier: "en_JP")) 6 dayFormatter.dateFormat = DateFormatter.dateFormat(fromTemplate: "E", options: 0, locale: Locale(identifier: "ja_JP")) 7 8 let todayE = Calendar.current.date(byAdding: .month, value: 0, to: dt)! 9 10 let EText = dayFormatter.string(from: todayE) 11 print(EText) 12 return EText

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

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

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

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

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

miyabi_takatsuk

2020/11/04 03:48 編集

> うまくいきません。 では状況が全くわかりません。 実際にはなんと出力されてますか? (英語表記で、Wedとか表示されていると予想しますが) ※追記 出力状況、記載してくれてましたね。 大変失礼しました・・・
miyabi_takatsuk

2020/11/04 03:00

おそらく、 https://qiita.com/kkoide1332/items/e491b6e0c2b676b0e89b を参考にされたのではないでしょうか? この記事は、3年前と、古い情報ですので、今だと通用しないかと思われます。 (プログラミングの記事は、1年以上すると、古い情報とみなした方がいい場合が多い) こちらを参考にやってみてください。 https://qiita.com/rinov/items/bff12e9ea1251e895306 それでも理想の挙動にできなければ、 コメントください。
TsukubaDepot

2020/11/04 03:24

コメントつけられてたんですね。 失礼しました。 国際化問題は鬼門のようで、ターゲットの設定まできちんと行っていないとうまくいかないことも多いようです(今知りました)。
miyabi_takatsuk

2020/11/04 03:45

後者の記事は今年のものなので、有効な気がします。 端末の設定地域を引数に入れてるぽいので、国際化問題も回避しているような気がします。
vitoyaokatsu

2020/11/04 03:49

ありがとうございます。早速試してみます。
TsukubaDepot

2020/11/04 04:10

miyabi_takatsukさん Locale.current のことを指しているのであれば、ターゲットの Localizations が優先されるように思われます。 Japaneseを「追加しない」でLocale.current を指定すると、「en_JP」になるようで、これだと英語表記となりました。 Japaneseを追加すると「ja_JP』になるようです。 さらに困ったことに、一度 Japanese を追加したあと、プロジェクトの Localizations から Japanese を削除しても、普通にコンパイルしただけだと Japanese が残ってしまうようで、実行結果が変わりません。きちんと反映されているかどうか確認するには、一度 Clean する必要がありそうです。
guest

回答1

0

ベストアンサー

端末の設定を日本語にしても、ターゲットの PROJECT -> Info -> Localizations に Japanese が追加されていなければ、出力形式は English になるようです。

参考文献:

これを参考に Localization に日本語を加えると、端末の言語を日本語にすれば日本語で表示されます。ちなみに、Japanese を追加していても、端末の言語を English にすると英語となるようです。

あるいは、再度 locale を設定することで、強制的に出力言語を日本語にすることもできるようです(国際化という意味では望ましい方法とは言えませんが)

Swift

1 dayFormatter.dateFormat = DateFormatter.dateFormat(fromTemplate: "E", options: 0, locale: Locale.current) 2 dayFormatter.locale = Locale.init(identifier: "ja_JP")

投稿2020/11/04 03:22

TsukubaDepot

総合スコア5086

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

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

vitoyaokatsu

2020/11/04 04:03

ありがとうございました。「国際化という意味では望ましい方法とは言えませんが」とおっしゃっていただいたとおり、迷っているところですが、今作っているものは、日本人に需要があるのでないかと思い、あえて日本語表示の機能を付け加えようと思いました。まだまだ、未完成ですが、本日の曜日が水と出ましたので、なんとかなると思います。localをカレントにするなど、また新たな知識を得ることができました。前回同様、詳しく丁寧にご回答いただきありがとうございます。相互フォローしていただけるとありがたいです。よろしくお願いいたします。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問