簡體   English   中英

從Java中的int值獲取Date對象

[英]Obtain Date object from the int value in java

我有一個int值,並且要從int值中獲取該int值的Date對象。

例:

 int value = 166368;
 long l = (long)value;
 Date date = new Date(l);

值是我想要此特定值的Date對象的整數值。

現在,我想獲取此int值的Date 我嘗試將此int值轉換為long ,然后在Date對象中設置long值,但不會返回正確的值。

那么如何實現呢?

您傳遞給Date構造函數的值必須是自格林尼治標准時間1970年1月1日00:00:00.000以來經過的毫秒數。

您的代碼是正確的,但是您在此處傳遞的值似乎太小而無法正確。

如果您傳遞的長值是距紀元(1970年1月1日)的毫秒數,並且166368 ms = 166.3秒<3分鍾,那么我想說您應該將1970年1月1日作為Date值。 正確?

正如@ggreiner所指出的,您應該告訴我們,您希望從int值166368獲得哪個日期?

您的問題“從java中的int值獲取Date對象”是可能的:

final int x = Integer.MAX_VALUE;
final Date d = new Date(x);
final Date today = new Date();
System.out.println("max integer x:" + x);
System.out.println("the Max date could be represented by x:" + d);
System.out.println("today in number:" + today.getTime());

運行上面的代碼,您得到:

max integer x:2147483647 
the Max date could be represented by x:Sun Jan 25 21:31:23 CET 1970 
today in number:1330362276028

這意味着,如果將整數傳遞給Date()構造函數,則可以使用,但不會晚於Sun Jan 25 21:31:23 CET 1970獲得Date。

如果您檢查API public Date(long date)是否這樣做

分配一個Date對象,並將其初始化為表示自標准基准時間(即“紀元”)(即GMT 1970年1月1日)以來指定的毫秒數。

166368幾乎不是3分鍾,因此日期不會改變。 如果您進行打印,只會發現時間有所不同。

可能是您正在嘗試做這樣的事情

Date now = new Date();
long nowLong = now.getTime();
long newLong = nowLong + 166368;
System.out.println(new Date(newLong).toString());

使用日期的最佳方法是使用DateFormat類。

DateFormat df = new SimpleDateFormat(“ dd / MM / yy”); 字符串formattedDate = df.format(new Date());

有一個詳細的文章在這里

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM