在Android上更改日期格式的时间

时间:2013-01-16 13:41:58

标签: java android simpledateformat

我按照以下格式从JSON中提取日期和时间

2013-01-16T13:43:11

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

06:43 

我怎么能做到这一点?

3 个答案:

答案 0 :(得分: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将在您当地的时区,所以如果您在巴基斯坦就可以了

答案 1 :(得分:1)

您可以使用SimpleDateFormat,如下所示:

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

希望它有所帮助。

答案 2 :(得分:1)

java dateFormat不是线程安全的,而是使用joda time lib:

Joda time lib download

您可以使用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());