我正在尝试使用Java Date和Calendar实现一个时区到另一个时区的简单转换。我正在尝试运行以下代码
Calendar instance = Calendar.getInstance(TimeZone.getTimeZone("Europe/London"));
Date date = instance.getTime();
System.out.println(date);
GregorianCalendar instance2 = new GregorianCalendar(TimeZone.getTimeZone("Europe/Athens"));
instance2.setTime(instance.getTime());
System.out.println(instance2.getTime());
但这仍然返回相同的日期,而不是+1小时...整个问题看似微不足道,但我找不到任何简单的答案。提前感谢您的帮助。
发布于 2012-11-02 23:12:41
使用System.out.println(date); or System.out.println(instance2.getTime());
打印日期时,instance2.getTime()
返回的Date
为TimeZone independent
,并且始终以本地时区打印日期。
相反,您可能希望使用DateFormat/SimpleDateFormat
DateFormat formatter= new SimpleDateFormat("MM/dd/yyyy HH:mm:ss Z");
formatter.setTimeZone(TimeZone.getTimeZone("Europe/London"));
System.out.println(formatter.format(date));
formatter.setTimeZone(TimeZone.getTimeZone("Europe/Athens"));
System.out.println(formatter.format(instance2.getTime()))
发布于 2014-07-15 12:35:35
您可以使用以下代码片段
String dateString = "14 Jul 2014 00:11:04 CEST";
date = formatter.parse(dateString);
System.out.println(formatter.format(date));
// Set the formatter to use a different timezone - Indochina Time
formatter.setTimeZone(TimeZone.getTimeZone("Asia/Bangkok"));
System.out.println("ICT time : "+formatter.format(date));
https://stackoverflow.com/questions/13197956
复制相似问题