我可以存儲在java.util.Date中的有效值的範圍是什麼? API對此沒有太多說明。java.util.Date的有效範圍?
還是它只支持可以表示爲unix時間戳的日期(即1970年1月1日之後的日期)?如果是這樣,那麼在JDK中是否有一個(serializeable)類可以支持之前的日期?
我正在尋找的是db4o中
我可以存儲在java.util.Date中的有效值的範圍是什麼? API對此沒有太多說明。java.util.Date的有效範圍?
還是它只支持可以表示爲unix時間戳的日期(即1970年1月1日之後的日期)?如果是這樣,那麼在JDK中是否有一個(serializeable)類可以支持之前的日期?
我正在尋找的是db4o中
它支持Long.MIN_VALUE與Long.MAX_VALUE之間的日期:
class DateTest {
public static void main(String[] args) {
DateFormat df = new SimpleDateFormat("d MMM yyyy G, HH:mm:ss.S Z");
System.out.println(df.format(new Date(Long.MIN_VALUE)));
System.out.println(df.format(new Date(0)));
System.out.println(df.format(new Date(Long.MAX_VALUE)));
}
}
輸出
2 Dec 292269055 BC, 10:47:04.192 -0600
31 Dec 1969 AD, 18:00:00.0 -0600
17 Aug 292278994 AD, 01:12:55.807 -0600
(注:以上時間均爲美國中部時間)
日期可以1.1.1970之前包含值,只需使用負長:-)
java.util.Date
商店日期生日場的一類/類型以1970-01-01作爲參考的毫秒爲long
。由於long
是一個有符號的64位整數,因此您可以預期java.util.Date
覆蓋參考日期前後約2.9億年 - 即如果您不關心精確表示和日曆系統切換。
除非你正在規劃一個恐龍生日聚會,我會說,java.util.Date可能是你的目的罰款...
這很有幫助,謝謝。我不知道負值對於時間戳是有效的。 – Dexter 2011-03-30 15:06:07
它並沒有突破,你只是不打印時代領域... – 2011-03-30 15:16:38
@Michael Borgwardt - 雖然「日期」本身沒有時代字段(至少不是一個可訪問的一個) - 如果我要包裝它在「日曆」中可以打印。 – 2011-03-30 15:24:27
猜猜Date.toString()做了什麼(在猜測System.println(Object)的作用之後)。 – 2011-03-30 15:26:52