- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
如标题所示,在 Java 中,如果我这样做
System.out.print(new java.util.Date(Long.MAX_VALUE));
System.out.print(new java.util.Date(0));
System.out.print(new java.util.Date(-86400000));
System.out.print(new java.util.Date(Long.MIN_VALUE));
我得到输出
Sun Aug 17 02:12:55 EST 292278994
Wed Dec 31 19:00:00 EST 1969
Tue Dec 30 19:00:00 EST 1969
Sun Dec 02 11:47:04 EST 292269055
所以年份值变为 Long.MAX_VALUE > Long.MIN_VALUE > 0 > -86400000
?发生了什么?为什么 Date(Long.MIN_VALUE)
不是负年份?
搜索,我无法找到与此相关的任何信息,Java 文档也没有提及任何相关信息。
我正在使用 Java 8。
此外,执行以下操作
(new java.util.Date(Long.MIN_VALUE).getYear() >= new java.util.Date(0).getYear())
返回 true
,但是
(new java.util.Date(Long.MIN_VALUE).after(new java.util.Date(0)))
返回 false
?
最佳答案
首先要做的事情:以下
Long.MIN_VALUE > -86400000
评估为 false
。
另一方面,Date 类中构造函数的负值表示日历中“纪元”之前的日期,即 1970 年 1 月 1 日,格林威治标准时间 00:00:00。。 p>
因此,使用 Long.MIN_VALUE
构造的日期是一种回到过去的方式。更改打印 Date
的方式可能会帮助您发现问题……
System.out.println(new SimpleDateFormat("dd.MM.yyyy GG HH:mm:ss.SSS").format(new Date(Long.MAX_VALUE / 1000)));
System.out.println(new SimpleDateFormat("dd.MM.yyyy GG HH:mm:ss.SSS").format(new Date(0)));
System.out.println(new SimpleDateFormat("dd.MM.yyyy GG HH:mm:ss.SSS").format(new Date(-86400000)));
System.out.println(new SimpleDateFormat("dd.MM.yyyy GG HH:mm:ss.SSS").format(new Date(Long.MIN_VALUE)));
System.out.println(Long.MIN_VALUE > -86400000);
所以,new Date(Long.MIN_VALUE)
是基督之前的一个日期。
格式化程序模式非常有助于识别此类 Blob 。
在这种情况下,G 表示纪元指示符,所有模式指示符都是here .
关于java - 为什么 Java 中的 new java.util.Date(Long.MIN_VALUE) 等于 "Sun Dec 02 11:47:04 EST 292269055"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43473059/
我意识到下面的代码是正确的 Integer.MIN_VALUE == -Integer.MIN_VALUE == Math.abs(Integer.MIN_VALUE) 这是因为当我们取反-21474
我创建了一个包含以下字段的 Interval 类: ... private static final Integer MINF = Integer.MIN_VALUE; Integer head,ta
在 Java 中,当我说 Integer i = Math.abs(Integer.MIN_VALUE) 时。我得到与答案相同的值,这意味着 i 包含 Integer.MIN_VALUE。我也在 C+
我遇到以下问题。 我使用哈希表将一些数据存储在内存中(来自数据库查询): Map 其中 MyObject 由 3 个数组组成:float[]、int[] 和 double[]。我使用 Float.MI
我正在用 Javascript 编写一个简单的函数,它返回数字数组中最大的数字,并且我有一堆测试数据,但我一辈子都无法弄清楚为什么其中 2 个测试失败了。 我最大的列表函数: function lar
我明天有一个测试,我无法理解我的书籍解释,我感谢您的帮助: public class TestClass{ public static void main(String[] args) t
Integer.MIN_VALUE 在 Java 中的二进制表示是 100000000000000000000000000000000。 为什么不是 1000000000000000000000000
我知道有一个技巧可以使用反射来更改 static final 字段的值,并考虑在 Long 上尝试它 Field field = Long.class.getField("MIN_VALUE"
我有以下代码,但当 mutuaInformation 为零时它不会通过 if。知道出了什么问题吗? int largestEntropyIndex = Integer.MIN_VALU
根据 MDN , MIN_VALUE 是最接近 0 的值,任何小于它的值都被认为是 0。 不过,我正试图找到一个合适的例子来解释它的实际用法。 MDN 使用了以下示例 - if (num1 / num
我明天要考试,我看不懂我书上的解释,感谢帮助: public class TestClass{ public static void main(String[] args) throws
在 Java 中 int 类型是有符号的,但它有 a method比较两个整数,就好像它们是无符号的一样: public static int compareUnsigned(int x, int y
好吧,也许我只是因为这个而累了,但我怎样才能做到这一点? int x = Integer.MAX_VALUE+10; //或者也许 int x = Integer.MIN_VALUE-20; 我只是想
为什么这行代码很重要?(没有它我会得到错误的答案) if (dividend == Integer.MIN_VALUE && divisor == -1) { return Integer.M
任何人都可以解释一下为什么 Double.MIN_VALUE 实际上并不是 Doubles 可以采用的最小值吗?它是一个正值,Double 当然可以是负值。 我明白为什么它是一个有用的数字,但它似乎是
很难说出这里要问什么。这个问题模棱两可、含糊不清、不完整、过于宽泛或夸夸其谈,无法以目前的形式得到合理的回答。如需帮助澄清此问题以便重新打开,visit the help center . 关闭 1
这个问题在这里已经有了答案: Math.abs returns wrong value for Integer.Min_VALUE (8 个答案) 关闭 7 年前。 考虑下面的 java 代码。 I
这些值在 java 中如何相同? -Integer.MIN_VALUE == Integer.MIN_VALUE 值是: -2147483648 : -2147483648 我尝试比较它并返回 tru
以下内容也适用于其他 MIN_VALUE 和 MAX_VALUE,但我们现在只关注 Integer。我知道在 Java 中整数是 32 位的,Integer.MAX_VALUE = 214748364
https://leetcode.com/problems/balanced-binary-tree/ Given a binary tree, determine if it is height-b
我是一名优秀的程序员,十分优秀!