繁体   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