2

次の形式でJSONから日付と時刻を抽出しました

2013-01-16T13:43:11

それをパキスタンの現地時間に変換し、その時間に 5 時間を追加する必要があるため、結果は次のようになります。

06:43 

どうすればこれを達成できますか?

4

3 に答える 3

3

"2013-01-16T13:43:11"それがGMTにあると仮定すると

String s = "2013-01-16T13:43:11";
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss");
df.setTimeZone(TimeZone.getTimeZone("GMT"));
Date date = df.parse(s);
date = new Date(date.getTime() + 5 * 3600 * 1000);
String time = new SimpleDateFormat("HH:mm").format(date);

time現地のタイムゾーンになるので、パキスタンにいる場合は問題ありません

于 2013-01-16T14:00:54.113 に答える
1

Java dateFormat はスレッドセーフではありません。代わりに joda time lib を使用してください。

Joda time lib ダウンロード

withZone メソッドを使用して、特定のタイムゾーンで時間を変更できます

DateTime userTime1 = new DateTime();
            DateTime eventRecordTime = new DateTime();
            userTime1 = DateTime.parse("2012-07-05T21:45:00+02:00");
            eventRecordTime = DateTime.parse((String) jo.get("start_time"));
            DateTimeZone dtz = userTime1.getZone();
            System.out.println(eventRecordTime.withZone(dtz).toString());
于 2013-01-16T18:47:44.593 に答える
1

以下のように SimpleDateFormat を使用できます。

String strDate = null;
SimpleDateFormat dateFormatter = new SimpleDateFormat(
                "hh:mm");
strDate = dateFormatter.format(yourDate);

それが役に立てば幸い。

于 2013-01-16T13:45:33.377 に答える