gpt4 book ai didi

Java公历

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:56:07 26 4
gpt4 key购买 nike

作为一名经验丰富的 Delphi (pascal) 开发人员,我正在尝试理解 GregorianCalendar 学习 java。根据文档,1970 年 1 月 1 日 0:00:00 是计算从这一点开始耗时(以秒为单位)的引用。所以,在实验中,我设置了一个新变量

GregorianCalendar cal2 = new GregorianCalendar(1970, 0, 1, 0, 0, 0); //January=0, Day=1, Hour=0, Min=0, Sec=0

然后我看时间

cal2.getTimeInMillis()

根据定义,这应该等于零。但是我得到了 18,000,000 毫秒。这是5个小时。我在想这与时区有关吗?任何建议,我在东区。

如果是这样,我该如何解释?我真的很想理解,所以我可以计算两次之间的秒数差异。不了解这一点,我无法继续!谢谢!道格

最佳答案

package so;

import java.util.Calendar;
import java.util.GregorianCalendar;
import java.util.TimeZone;

public class BeginningOfTime {

public static void main (final String[] args) {

final Calendar localTZ = new GregorianCalendar (1970, 0, 1, 0, 0, 0);
dump (localTZ);

final Calendar utcTZ = new GregorianCalendar ();
utcTZ.clear ();
utcTZ.setTimeZone (TimeZone.getTimeZone ("UTC"));
dump (utcTZ);
}

private static final void dump (final Calendar c) {

System.out.printf ("%s: %d (offset %d)%n",
c.getTimeZone ().getDisplayName (),
c.getTimeInMillis (),
c.get (Calendar.ZONE_OFFSET));
}
}

产生这个:

Eastern Standard Time: 18000000 (offset -18000000)
Coordinated Universal Time: 0 (offset 0)

关于Java公历,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12169893/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com