gpt4 book ai didi

Java.util.Calendar - 自 1970 年 1 月 1 日以来的毫秒数

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:28:21 24 4
gpt4 key购买 nike

程序后跟输出。有人请向我解释为什么从 1970 年 1 月 1 日开始的 10,000,000 毫秒是 1969 年 11 月 31 日。好吧,有人请解释我的假设有什么问题,即第一个测试应该产生从 1970 年 1 月 1 日开始的 10,000,000 毫秒的时间。小于 10,000,000 的数字产生同样的结果。

public static void main(String[] args) {

String x = "10000000";
long l = new Long(x).longValue();
System.out.println("Long value: " + l);

Calendar c = new GregorianCalendar();
c.setTimeInMillis(l);
System.out.println("Calendar time in Millis: " + c.getTimeInMillis());

String origDate = c.get(Calendar.YEAR) + "-" + c.get(Calendar.MONTH) + "-" + c.get(Calendar.DAY_OF_MONTH);
System.out.println("Date in YYYY-MM-DD format: " + origDate);

x = "1000000000000";
l = new Long(x).longValue();
System.out.println("\nLong value: " + l);

c.setTimeInMillis(l);
System.out.println("Calendar time in Millis: " + c.getTimeInMillis());

origDate = c.get(Calendar.YEAR) + "-" + c.get(Calendar.MONTH) + "-" + c.get(Calendar.DAY_OF_MONTH);
System.out.println("Date in YYYY-MM-DD format: " + origDate);
}

Long value: 10000000

Calendar time in Millis: 10000000

Date in YYYY-MM-DD format: 1969-11-31

Long value: 1000000000000

Calendar time in Millis: 1000000000000

Date in YYYY-MM-DD format: 2001-8-8

最佳答案

您从 Calendar 打印的日期是您所在时区的本地日期,而纪元定义为 UTC 时间 1970-01-01 的午夜。因此,如果您住在 UTC 以西的时区,那么您的日期将显示为 1969-12-31,即使(在 UTC 中)它仍然是 1970-01-01。

关于Java.util.Calendar - 自 1970 年 1 月 1 日以来的毫秒数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/263376/

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