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

新日期(长)给出不同的结果

冯亮
2023-03-14
问题内容

当我运行此代码时:

System.out.println( "XXX date=" + new Date( 1311781583373L ) );

我在Eclipse的JUnit运行程序中得到以下结果:

XXX date=Wed Jul 27 16:46:23 GMT+01:00 2011

这导致从命令行Maven:

XXX date=Wed Jul 27 17:46:23 CEST 2011

如您所见,时间有所不同。

(同一台计算机,相同的Java版本,可能相隔30秒)。为什么?

[编辑] 时区也不同。CEST从Maven GMT+01:00启动和从Eclipse 启动时,为什么要使用Java ?

或换一种说法:如何强制Java使用两者?


问题答案:

要指定默认时区,您可以设置系统属性user.timezone。您可以通过将其作为参数传递给JavaVM来实现(您可能需要修改eclipse.ini或Maven等效配置文件):

-Duser.timezone=<your preferred timezone>

…或通过编程设置:

 System.setProperty("user.timezone", "<your preferred timezone>");

或者,如果方便的话,可以指定每次打印日期时使用的时区:

DateFormat myDateFormat = new SimpleDateFormat("<insert date format string here>");    
myDateFormat.setTimeZone(TimeZone.getTimeZone("<your preferred timezone>")); 
....
System.out.println(myDateFormat.format(yourDate));


 类似资料:
  • 我需要我的Java Android应用程序来提取和比较日期,但是要获得正确的日期一团糟。 实际运行时间:2022年1月10日周一22:29 结果: 日期当前时间=星期一 一月 10 22:29:53 GMT 01:00 2022 (正确日期) 日历.get(日历年)=2022.0.10 21:29:53 (错误的月份,错误的小时) 当前时间.getyear()=122.0.1 22:29:53 (

  • 我有两种日期格式,一种是字符串“yyyy-mm-dd'hh:mm:ss.sssz”,另一种是长的“yyyymmddhhmmsssss”。我想把它转换成这个格式“yyyy-mm-dd hh:mm:ss”,它转换成功了,但是当我打印date.getTime()时 对于第一个->1416490009109 用于秒->20141120121211800 代码: 对于第二个

  • 而输出是 谁能详细说明一下1380605909318和61341428160000之间的区别?

  • 问题内容: 我有一个字符串形式的日期。我必须将其更改为Sql Date。所以为此,我使用了以下代码。 当我使用上面的代码并运行它。我得到以下输出。 此处月份未正确转换。 请告诉我问题出在哪里,并提供示例代码以获得正确的结果? 问题答案: 是 分钟 。你想为 月 : 不要感到难过-这个确切的错误经常出现。

  • 当更新旧日期到新日期时,我得到 SQL错误:ORA-00932:不一致的数据类型:预期日期获取字符00932。00000-“不一致的数据类型:预期%s得到%s”

  • 我在Cplex中使用Python API来解决一个线性编程问题。使用Cplex时,我的结果如下: 但随后我将LP prolem保存为LP文件,并再次使用Cplex进行求解,结果与第一个略有不同: 下面是我的功能: