0

我创建了一个 Android 应用程序,我想在屏幕上显示当前日期。我使用这段代码:

Date date = new Date(0);
java.text.DateFormat dateFormat = android.text.format.DateFormat.getDateFormat(getApplicationContext());
text.setText("Time: " + dateFormat.format(date));`

但是这段代码向我显示了日期“1.1.1970”。

如何显示当前日期?

4

8 回答 8

4

Date(0)是 1970 年 1 月的第一个,请参阅Date(long milliseconds) 构造函数的文档

公共日期(长毫秒)

使用指定的毫秒值初始化此 Date 实例。该值是自 1970 年 1 月 1 日 GMT 以来的毫秒数。

要获取当前日期,请使用不带参数Date()的构造函数:

公开日期()

将此 Date 实例初始化为当前时间。

于 2012-08-07T05:53:09.720 回答
2

利用

text.setText(new SimpleDateFormat("yyyy-MM-dd").format( Calendar.getInstance().getTime());
于 2012-08-07T05:53:27.850 回答
1

要在屏幕上显示当前日期,请执行此操作..

String s = new SimpleDateFormat("dd-MM-YYYY").format(new Date());

现在在屏幕上显示String 。

于 2012-08-07T06:08:16.707 回答
1
SimpleDateFormat dfDate  = new SimpleDateFormat("yyyy-MM-dd");   
Calendar c = Calendar.getInstance();
String date = dfDate.format(c.getTime());
System.out.println("Date is "+date);

结果将是 ========> 2012-08-07

于 2012-08-07T05:52:45.447 回答
1

只需删除0,因此将其替换为:Date date = new Date(0);Date date = new Date();

根据Android 文档

使用指定的毫秒值初始化此 Date 实例。该值是自 1970 年 1 月 1 日 GMT 以来的毫秒数。

由于您传递了 0 值,因此它采用了上述日期并向其添加了 0 毫秒,这就是您获得1.1.1970日期的原因。

于 2012-08-07T05:54:54.853 回答
0

new Date()就足够了,否则如果你打电话,你会在 01.01.1970 00:00:00 之后 0 秒得到日期new Date(0)

于 2012-08-07T05:52:45.160 回答
0

不要使用新的日期(0)。参数是自纪元以来的时间,即 1.1.1970。只需使用新日期()。

于 2012-08-07T05:53:05.680 回答
0

确保导入“java.util.Date;” 而不是“java.sql.Date;” 否则你将无法通过任何参数。

于 2014-11-05T21:42:08.570 回答