0
有下列信息:如何将第一个时区的日期转换为第二个时区?
- 日期( “2013年8月30日7时05分25秒”)
- 时区( “欧洲/莫斯科”)
我的应用程序获取此来自某个服务器的信息,我需要将此日期/时间转换为当前用户的时区。我知道我应该使用DateFormat和TimeZone API,但我不明白。请给我一个建议或一些代码。谢谢。
有下列信息:如何将第一个时区的日期转换为第二个时区?
我的应用程序获取此来自某个服务器的信息,我需要将此日期/时间转换为当前用户的时区。我知道我应该使用DateFormat和TimeZone API,但我不明白。请给我一个建议或一些代码。谢谢。
下面的代码会为你工作&参考的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
如果你可以包括一个新的图书馆,我强烈建议考虑乔达时间这是一个很棒的日期时间库。 http://www.joda.org/joda-time/例如http://joda-time.sourceforge.net/userguide.html#Changing_TimeZone – Ethan
看到我的答案,它将适用于您的时区 – Prateek