我正在尝试在我的Android应用程序(4.2.2),Eclipse Luna(4.4.0)上显示当前日期。在下面的代码中,我收到使用Date()
的错误,说我必须添加一个参数。但是,添加0
或long
当然会导致 1969年12月31日7:00 的日期。
final DateFormat dateTimeFormatter = DateFormat.getDateTimeInstance();
graph.setCustomLabelFormatter(new CustomLabelFormatter(){
@Override
public String formatLabel(double value, boolean isValueX)
{
if (isValueX)
{
return dateTimeFormatter.format(new Date(0)); //how to append date to value
}
return null; //graphview generates Y-axis label
}
});
Date()
仍可用作获取当前日期吗?
答案 0 :(得分:1)
从构造函数中取出零!否则它将被解释为1970年以来的纪元以来的毫秒数
是的,'新日期()'完全有效,以获取当前日期/时间。
SirKuryaki是正确的,你导入错误(不应该是java.sql.Date)。
参考:http://docs.oracle.com/javase/6/docs/api/java/sql/Date.html
参考:http://docs.oracle.com/javase/6/docs/api/java/util/Date.html#Date()
答案 1 :(得分:1)
构造函数Date(long timestamp)
接受一个long,即自纪元(1970年1月1日00:00:00 GMT)以来的毫秒数,并为其提供日期对象。传递0,因此会给你时代。
只需致电new Date(System.currentTimeMillis())
即可获取当前日期!
编辑:
奇怪的是,你不能在没有任何参数的情况下使用new Date()
,因为文档明确指出它是可用的(http://developer.android.com/reference/java/util/Date.html#Date())。也许你的项目是miconfigured
答案 2 :(得分:1)
您正在使用epoch date constructor(超过纪元0ms的特定时间),因此正确的输出实际上是1969年12月31日7:00。
如果您使用default constructor new Date()
,它将默认为System.currentTimeMillis()并为您提供当前时间戳。
另外,请确保您使用的是java.util.Date
而不是java.sql.Date
答案 3 :(得分:0)
使用new Date()
或new Date(System.currentTimeMillis());
获取当前日期
new Date(long);
表示使用指定的毫秒值初始化此Date实例。该值是自格林威治标准时间1970年1月1日以来的毫秒数。
参数
毫秒,格林威治标准时间1970年1月1日以来的毫秒数。
答案 4 :(得分:0)
我认为您导入错误,请确保在文件开头有此行
import java.util.Date;
然后你可以致电new Date()
http://developer.android.com/reference/java/util/Date.html
答案 5 :(得分:0)
这取决于您是要导入“java.util.Date”还是“java.sql.Date”。 SQL的一个需要构造函数中的值。
Eclipse将弹出一个对话框,询问您要导入的日期。您可能选择了错误的导入。如果是这种情况,只需清除文件顶部的“导入”,然后使用“java.util.Date”再次尝试