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