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

如何在Java中使用TimeZone解决夏时制

阎劲
2023-03-14
问题内容

我必须在我的Java应用程序中打印EST时间。我使用以下方法将时区设置为EST:

Calendar cal = Calendar.getInstance(TimeZone.getTimeZone("EST"));

但是,当在该时区遵循夏令时时,我的代码将无法打印正确的时间(它可以少打印1小时)。

不管是否遵守夏令时,如何使代码始终读取正确的时间?

PS:我尝试将时区设置为EDT,但不能解决问题。


问题答案:

这是开始的问题:

Calendar cal = Calendar.getInstance(TimeZone.getTimeZone("EST"));

应该完全避免使用3个字母的缩写,而应使用TZDB区域ID。EST是东部标准时间- 标准时间从不遵守夏令时;它不是一个完整的时区名称。这是部分时区的名称。(不幸的是,我对这个“半时区”概念还没有一个好词。)

你需要一个完整的时区名称。例如,America/New_York在东部时区:

TimeZone zone = TimeZone.getTimeZone("America/New_York");
DateFormat format = DateFormat.getDateTimeInstance();
format.setTimeZone(zone);

System.out.println(format.format(new Date()));


 类似资料:
  • Values.java AmountDetail.java 当我在postman if子句中点击API时,它工作正常,但如果我想检查else,它会给出错误。我觉得铸造是这里的问题,但我不知道如何返回else块的值。

  • C:\Oracle\Middleware\Oracle_Home\Oracle_Common\jdk\bin\javaw.exe-server-classpath C:\jdeveloper\mywork\java_hello_world.adf;C:\jdeveloper\mywork\java_hello_world\client\classes;C:\users\admin\download

  • 使用以下代码: 我得到 有没有办法从夏时制之后到1:00:00而不经过夏时制之前的1:00:00?

  • 我正在尝试用Java解决一个ODE,到目前为止,我已经尝试了两个不同的库。我最信任的是Apache Commons Math,然而,即使是简单的问题,我似乎也得不到正确的解。 当我在Mathematica中求解系统时,我得到了这样的结果: 如果我用Apache Commons Math中的Dormand-Prince8(5,3)求解器求解,我会得到以下结果:

  • 我正在尝试使用中的包从中提取表。我运行以下行: 但是,我不断遇到以下错误: 中出错。jcall(“RJavaTools”,“Ljava/lang/Object;”,“invokeMethod”,cl,:java。lang.IllegalAccessException:RJavaTools类无法访问java类的成员。util。ArrayList$Itr(在模块java.base中),带修饰符“pub

  • 我正在尝试使用我在Internet上找到的此代码控制mp3文件量,但在库中添加所有必需的jar后,我仍然无法这样做。 以下是我正在使用的内容: 如果我播放wav文件,它可以正常工作,但对于mp3,我会出现以下错误: 至于mp3支持,我已经导入了mp3spi1.9.5.jar、jl1.0.1.jar和tritonus-share.jar