4

しばらく探していて、かなりの量の調査と実験を行ってきましたが、iOS デバイスのタイム ゾーン サポートのユーザー設定に保存されている値を取得する方法が見つかりません。

NSTimeZone の便利なメソッド +systemTimeZone、+resetSystemTimeZone、+defaultTimeZone、+localTimeZone を調べました。それらの違いと、アプリケーションごとに独自のデフォルトのタイムゾーンを設定する方法、およびデフォルトへの最初の呼び出しがシステムの値を返す方法についても完全に理解しています。その後、システムはキャッシュされ、デバイスのタイム ゾーンが変更された場合はリセットする必要があります。

問題は、systemTimeZone が常にデバイスが実際に配置されている場所であり、[タイム ゾーン サポート] の下のデバイスの設定で設定された値ではないことです。

[[NSCalendar currentCalendar] timeZone] と [[NSCalendar autoupdatingCurrentCalendar] timeZone]] についても調査しました。

[[[NSLocale currentLocale] objectForKey:NSCurrentCalendar] timeZone] と [[[NSLocale autoupdatingCurrentLocale] objectForKey:NSCurrentCalendar] timeZone] も試しました

デバイスの Settings.app -> Mail, Contacts, Calendars -> Time Zone Support -> Time Zone の値を返すものはありません。

Settings.app -> Mail, Contacts, Calendars -> Time Zone Support -> Time Zone 設定の値を取得する方法を知っている人はいますか?

ありがとうと乾杯!

4

1 に答える 1

2

これが的外れである場合は申し訳ありませんが、実際に次の場所からタイム ゾーン サポート設定にアクセスしたいですか?

  • Settings.app -> メール、連絡先、カレンダー -> タイム ゾーンのサポート

そうでなければ、私はこの投稿をしなかったでしょうが、あなたが次のように述べたとき、あなたは私に考えさせました:

問題は、systemTimeZone が常にデバイスが実際に配置されている場所であり、[タイム ゾーン サポート] の下のデバイスの設定で設定された値ではないことです。

残念ながら、ここでのあなたの発言はまったく正しくありません。ユーザーが [自動設定]をオフにし、次の場所で特定のタイム ゾーンを選択していない限り+systemTimeZone、デバイスが実際に配置されている場所のタイム ゾーンを返します。

  • Settings.app -> 一般 -> 日付と時刻

これにより、システム全体で使用されるタイム ゾーンが変更され、新しい設定に合わせて調整されたステータス バーの時刻にすぐに反映されます。

以前にアクセスしようとしていたものは、カレンダーの予定がネイティブの Calendar.app でどのように表現されるかに焦点を当てているようであり、(その領域の残りの設定と共に) そのアプリケーションに限定されているように見えます。

ユーザーが変更できる有効なシステム全体のタイム ゾーン設定へのアクセスを探している場合は、[日付と時刻] の下の[タイム ゾーン]が最適です。これが によって返される値になります。+systemTimeZone

一方、メール、連絡先、カレンダーの下にある [タイム ゾーン サポート]設定に本当にアクセスする必要がある場合は、残念ながらお手伝いできません。

于 2013-01-27T09:42:50.480 に答える