当前位置: 首页 > 面试题库 >

将日期转换为不同的时区

董飞
2023-03-14
问题内容

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

    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小时…整个问题似乎微不足道,但我找不到任何简单的答案。在此先感谢您的帮助。


问题答案:

当您使用来打印日期时System.out.println(date); or System.out.println(instance2.getTime());Date
返回的instance2.getTime()是,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()))


 类似资料:
  • 我以UTC long格式存储日期,并以用户时区显示。但当我试图只存储几天而没有时间时,它会误导到不同的日期。 例如:2016年5月05/06/2016 (06日的调度事件)。此日期对于所有没有时区的地区都是唯一的。如果来自GMT 5:30时区的用户试图在2016年6月5日添加事件,则ISO-8601格式为2016-05-05T16:00:00.000Z,毫秒1462464000000。 然后来自G

  • 周日->明谷-0 周一->赛宁-1 周二->Selasa-2 帮我谢谢

  • 问题内容: 我已经尝试过一百万种不同的方法,但是没有用。任何帮助将非常感激。 上面的方法不起作用。 基本上,我想做的是获取纪元时间并将其转换为澳大利亚时间。我的当地时间是+05.30,但是我当然不希望这成为促成这种转化的因素。 编辑- 当我运行您的确切代码时,输​​出 时代1318388699000 2011年10月12日星期三08:34:59 GMT + 05:30 12/10/2011 03:

  • 问题内容: 有谁知道如何将JS dateTime转换为MySQL datetime?还有一种方法可以向JS日期时间添加特定的分钟数,然后将其传递给MySQL日期时间? 问题答案: 尽管JS确实拥有足够的基本工具来执行此操作,但它相当笨拙。

  • 问题内容: 是否有一个内置的转换方法为在Python,例如获得在指定日期的午夜?相反的转换很容易:有一个方法。 我真的必须手动打电话吗? 问题答案: 您可以使用;现在,您创建一个初始化为午夜的对象。