首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >将日期转换为不同的时区

将日期转换为不同的时区
EN

Stack Overflow用户
提问于 2012-11-02 23:10:17
回答 2查看 70.1K关注 0票数 24

我正在尝试使用Java Date和Calendar实现一个时区到另一个时区的简单转换。我正在尝试运行以下代码

代码语言:javascript
复制
    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小时...整个问题看似微不足道,但我找不到任何简单的答案。提前感谢您的帮助。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-11-02 23:12:41

使用System.out.println(date); or System.out.println(instance2.getTime());打印日期时,instance2.getTime()返回的DateTimeZone independent,并且始终以本地时区打印日期。

相反,您可能希望使用DateFormat/SimpleDateFormat

代码语言:javascript
复制
  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()))
票数 37
EN

Stack Overflow用户

发布于 2014-07-15 12:35:35

您可以使用以下代码片段

代码语言:javascript
复制
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));
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13197956

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档