2

特定のタイムゾーンの時間を表示するのに苦労しています。サーバーからUnixエポック時間でプログラムのすべての開始時間を取得するTVガイドのようなアプリがあり、アプリユーザーがどこにいても、どのAndroidデバイスからでも、オランダの時間に時間を表示したいと考えています。少し調べたところ、次のように機能すると思います。

new SimpleDateFormat("HH:mm", new Locale("nl", "NL")).format(new Date(time*1000));

ここで、time は 1370497200 などのエポック時間です

これはオランダの 07:40 ですが、使用しているデバイスのタイムゾーンを使用しているようです。Samsung Galaxy Tab 2.0 でテスト済み

私は何を間違っていますか?

関連する質問: http://developer.android.com/reference/java/util/Locale.htmlによると、 nl_NL ロケールがすべてのデバイスで利用できるとは想定できません。どうすればこれを解決できますか?

補足: http://www.epochconverter.com/は、特定のエポック時間が何時であるかをすばやく確認するための優れた方法です。

4

1 に答える 1

10

使用setTimeZone():

SimpleDateFormat simpleDateFormat = new SimpleDateFormat("HH:mm", new Locale("nl", "NL"));
simpleDateFormat.setTimeZone(TimeZone.getTimeZone("Europe/Amsterdam"));

関連する質問: http://developer.android.com/reference/java/util/Locale.htmlによると、 nl_NL ロケールがすべてのデバイスで利用できるとは想定できません。どうすればこれを解決できますか?

ここでUIについて話しているのですか?もしそうなら、あなたはそれを解決することはできません。システムに新しいロケールを追加できるのは、Google または OEM のみです。

于 2013-06-06T17:53:29.947 に答える