Java中的最短date
Java中的最短date值是多less?
不要忘记Date构造函数愉快地接受负值。
Date date = new Date(Long.MIN_VALUE); 回报
Sun Dec 02 22:47:04 BDT 292269055
 我想这是大爆炸恐龙的时间:) 
编辑
正如马丁·克莱顿回答的那样,你可以使用日历课来检查时代。 这将输出0代表BCE:
 Calendar calendar = Calendar.getInstance(); calendar.setTime(new Date(Long.MIN_VALUE)); System.out.println(calendar.get(Calendar.ERA)); 
 如果你正在谈论java.util.Date作为时间戳,你可以这样做 
  Date d = new Date(0L) ,你会看到这个代表星期四01 01:00:00 GMT 1970 
正如tulskiy指出的那样,可以将一个负值传递给Date构造函数。 如果我们这样做,并使用包括我们可以看到的时代的date格式:
 Date d = new Date(Long.MIN_VALUE); DateFormat df = new SimpleDateFormat("EEE, d MMM yyyy G HH:mm:ss Z"); System.out.println(df.format(d)); 
显示:太阳,12月29日292269055 BC 16:47:04 +0000
其他答案可能是正确的,但使用过时的类。
java.time
旧的date – 时间类(java.util.Date/.Calendar等)已被Java 8及更高版本中内置的java.time框架所取代。
java.time类的灵感来自JSR 310定义的Joda-Time ,由ThreeTen-Extra项目扩展,由ThreeTen-Backport项目移植到Java 6和7,并在ThreeTenABP项目中适用于Android。 参见教程 。
 在UTC时间线上,分辨率为纳秒 ,请使用Instant 。 给定与UTC的偏移量 ,使用OffsetDateTime 。 对于时区 (偏移量+exception规则),使用ZonedDateTime ,但由于其本质没有定义的最小值,也没有ZoneId 。 对于没有时间和不带时区的仅限date的值,请使用LocalDate 。 对于没有date且没有时区的仅限于时间的值,请使用LocalTime 。 对于没有时区的date时间,使用LocalDateTime 。 
-   Instant.MIN=-1000000000-01-01T00:00Z
-   OffsetDateTime.MIN=-999999999-01-01T00:00:00+18:00
-   LocalDate.MIN=-999999999-01-01
-   LocalTime.MIN=00:00
-   LocalDateTime.MIN=-999999999-01-01T00:00:00
-   Year.MIN_VALUE=-999,999,999
-   ZoneOffset.MIN=-18:00(实际上是-12:00)
警告:请谨慎使用这些值作为某种标志或特殊含义。 许多其他软件库和数据库可能不支持这些极端值。
对于一个标志或特殊的含义,比如一个非空的“没有价值的可用”,我build议select一个随意的时刻,但是避免到达这样的极端时间。 也许是Unix时代的参考date ,1970年1月1 日 ,1970:00:00Z。 在Java中定义为常量: Instant.EPOCH
这与Calendar类相同。
尝试这个:
 Date d = new Date( Long.MIN_VALUE ); System.out.println( d ); 
你会看到的:
 Sun Dec 02 16:47:04 GMT 292269055 
但默认的date格式不包括时代 – 这是BCE在这个date。
  由于Date被标记为弃用 ,我认为应该有另一种方法来解决这个问题,所以我看了一些方法,我发现这样 
 你可以使用Long.MIN_VALUE,当时我写这个,我没有search它,甚至/所以我不记得它。 