我按照以下格式从JSON中提取日期和时间
2013-01-16T13:43:11
我需要将其转换为巴基斯坦当地时间并在此时间内增加5小时,结果如下:
06:43
我怎么能做到这一点?
答案 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:
您可以使用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());