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

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

新規登録して質問してみよう
ただいま回答率
85.49%
Objective-C

Objective-Cはオブジェクト指向型のプログラミング言語のひとつです。C言語をベースにSmalltalkが取り入れられています。

Q&A

解決済

3回答

635閲覧

objectiveC 曜日の取得

panjaA

総合スコア67

Objective-C

Objective-Cはオブジェクト指向型のプログラミング言語のひとつです。C言語をベースにSmalltalkが取り入れられています。

0グッド

0クリップ

投稿2018/01/08 01:24

アプリが動いているシステムの設定などに依存せず、日本時間を指定して、現在の曜日を取得する方法を知りたいです。
よろしくお願いいたします。

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

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

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

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

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

guest

回答3

0

objective

1/// 日本時間での曜日を日本語で返す 2- (NSString *)weekdayInJananese { 3 4 // 日本時間での曜日(1~7)を取得 5 NSCalendar *cal = [NSCalendar currentCalendar]; 6 NSDateComponents *weekdayComp = [cal componentsInTimeZone:[NSTimeZone timeZoneWithName:@"Asia/Tokyo"] 7 fromDate:[NSDate date]]; 8 NSInteger weekday = weekdayComp.weekday; 9 if(weekday < 1 || weekday > 7) { 10 return nil; 11 } 12 13 // 日本語での曜日の名前の配列を取得 14 NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; 15 dateFormatter.locale = [NSLocale localeWithLocaleIdentifier:@"ja-JP"]; 16 NSArray<NSString *> *weekdaySymbols = [dateFormatter standaloneWeekdaySymbols]; 17 18 return weekdaySymbols[weekday - 1]; 19}

投稿2018/01/08 14:05

MasakiHori

総合スコア3384

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

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

panjaA

2018/01/24 08:19

返信遅れて申し訳ありません。ありがとうございます。
guest

0

ベストアンサー

objectivec

1NSDateFormatter *df = [NSDateFormatter new]; 2df.timeZone = [NSTimeZone timeZoneWithName:@"Asia/Tokyo"]; 3//df.locale = [NSLocale localeWithLocaleIdentifier:@"ja_JP"]; //コメント外すと言語設定を無視して常に日本語 4df.dateFormat = @"EEEE"; 5 6NSString *weekday = [df stringFromDate:[NSDate date]]; 7NSLog(@"%@", weekday); 8//=> 火曜日

この前の質問と同じなんですけどね。(フォーマットが違うだけ)

投稿2018/01/09 05:27

fuzzball

総合スコア16731

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

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

panjaA

2018/01/24 08:19

返信遅れて申し訳ありません。ありがとうございます。
panjaA

2018/03/01 13:36 編集

fuzzballさん 急に申し訳ありません。一つ質問があるのですが、 実機の設定>一般>日付と時刻>の 自動設定をOFFにして時間帯を何日かずらした時、上記の方法で現在の正しい曜日が取得できずに困っております。いくつか他にも方法がないか探してみましたが、解決に至りませんでした。 何か方法をご存知ではないでしょうか?
fuzzball

2018/02/28 13:28

例えば何月何日(何時何分)でしょうか?
panjaA

2018/02/28 13:35

2月25日と設定すると、 今日の曜日の火曜ではなく、日曜が出力されます。
fuzzball

2018/02/28 13:36

2月25日は日曜日ですが?
panjaA

2018/02/28 13:50

実機(ユーザの端末想定)で勝手に日付を変えられた時(2/25)も、今の曜日を取得したいです。 言葉足らずですいません。
fuzzball

2018/02/28 13:54

ネット経由で取得して下さい。(NTPサーバに問い合わせるとか)
panjaA

2018/02/28 13:57

わかりました。いつもありがとうございます!
guest

0

こんにちは。

日本の標準時を提供するWEBサービス、例えば、NICT日本標準時プロジェクトから
提供されている API のどれか、例えば、

https://ntp-a1.nict.go.jp/cgi-bin/time

などをプログラムから呼んで、曜日を読み取ればよいかと思います。

参考になれば幸いです。

投稿2018/01/08 01:54

jun68ykt

総合スコア9058

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

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

panjaA

2018/01/08 08:30

ご丁寧な回答ありがとうございます! APIを使用しない方法などご存知でしょうか?知っていらっしゃれば教えていただきたいです。 よろしくおねがいいたします。
panjaA

2018/01/24 08:19

返信遅れて申し訳ありません。ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.49%

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

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

質問する

関連した質問