[英]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.