1

RSS フィードから次の形式で時刻を入力しています。

水曜日 6 月 13 日 17:05:44 +0000 2012

2012 年 6 月 13 日水曜日 22:35:44として出力する必要があります。

ソース時間は常に GMT であり、必要な出力時間はデバイスのタイム ゾーン (GMT+5:30 または GMT-2:00 など) になります。

まず、次のように GMT を使用するカレンダー インスタンスを作成します。

Calendar calendar = Calendar.getInstance(TimeZone.getTimeZone("GMT"));

次に、入力時に StringTokenizer を使用して、次のようにカレンダーを変更しました。

calendar.set(Calendar.DAY_OF_MONTH, date);
calendar.set(Calendar.MONTH, month);
.
.
etc.

次に、次のコードがあります。

calendar.setTimeZone(TimeZone.getDefault());

基本的に、上記のコードはカレンダーをデバイスのタイム ゾーンに変更します。問題は、上記のコードは通常の環境では正常に動作しますが、 Android では動作しません。解決策はありますか?助けてください。

4

2 に答える 2

2

最初に、 Dateオブジェクトの文字列値を解析するためにDateFormatが必要でした。次に、Date に Timezone を設定するだけでなく、Date を使用してCalendarオブジェクトを作成し、そのカレンダー オブジェクトがデバイスのタイムゾーン インスタンスになるようにすることができます。

以下のコードは私の側で働いています

    String input_format = "EEE MMMMM dd HH:mm:ss Z yyyy";
    String input_value="Wed Jun 13 17:05:44 +0000 2012";
    Date date=null;

    SimpleDateFormat sdf = new SimpleDateFormat(input_format);
    try {
        date = sdf.parse(input_value);
    } catch (ParseException e) {
        e.printStackTrace();
    }

    Calendar calendar = sdf.getCalendar();
    calendar.setTime(date);
于 2012-06-26T07:40:18.780 に答える
-1

私がそれを正しく理解していれば、タイムゾーンを設定したいだけです

AlarmManager alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE);
alarmManager.setTimeZone("Europe/Paris");

たとえば、タイムゾーンをパリに設定します

于 2012-06-26T06:33:41.037 に答える