2013-08-31 38 views
0

有下列信息:如何将第一个时区的日期转换为第二个时区?

  • 日期( “2013年8月30日7时05分25秒”)
  • 时区( “欧洲/莫斯科”)

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

+1

如果你可以包括一个新的图书馆,我强烈建议考虑乔达时间这是一个很棒的日期时间库。 http://www.joda.org/joda-time/例如http://joda-time.sourceforge.net/userguide.html#Changing_TimeZone – Ethan

+0

看到我的答案,它将适用于您的时区 – Prateek

回答

0

下面的代码会为你工作&参考的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 
相关问题