2

我从 JSON 中提取了以下格式的日期和时间

2013-01-16T13:43:11

我需要将其转换为巴基斯坦当地时间并在该时间上增加 5 小时,因此结果如下:

06:43 

我怎样才能做到这一点?

4

3 回答 3

3

假设这"2013-01-16T13:43:11"是在格林威治标准时间

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

您可以使用 SimpleDateFormat 如下:

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

希望能帮助到你。

于 2013-01-16T13:45:33.377 回答
1

java dateFormat 不是线程安全的,请改用 joda time lib:

Joda 时间库下载

您可以使用 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 回答