0

有以下信息:

  • 日期(“2013-08-30 07:05:25”)
  • 时区(“欧洲/莫斯科”)

我的应用程序从某个服务器获取此信息,我需要将此日期/时间转换为当前用户的时区。我知道我应该使用 DateFormat 和 TimeZone API,但我不明白如何。请给我一条建议或一些代码。谢谢。

4

1 回答 1

0

下面的代码将为您工作并参考这个堆栈问题 for timezones-in-java

Calendar cal = Calendar.getInstance();
cal.setTimeZone(TimeZone.getTimeZone("Europe/Moscow"));
cal.setTime(new Date());

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss a");
SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss a");

Date resultdate = new Date(cal.getTimeInMillis());
sdf.setTimeZone(TimeZone.getTimeZone("Europe/Moscow"));

System.out.println("String date:"+sdf.format(resultdate));
try {
    System.out.println("Date:"+sdf2.parse(sdf.format(resultdate)));
} catch (ParseException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
}

输出

String date:2013-08-31 06:25:54 PM
Date:Sat Aug 31 18:25:54 IST 2013
于 2013-08-31T14:16:31.783 回答