关于java:创建函数的最有效方法是什么,以便当前日期以String格式显示而没有时间戳?

What is the most efficient way to create a function so that the current date is displaying in String format with no timestamp?

本问题已经有最佳答案,请猛点这里访问。

我是一个初学者,使用Java编程。我正在尝试创建一个函数,以便当前日期显示为String,并且没有时间戳信息。我希望日期的格式是"年/月/日",但我遇到了麻烦。我已经搜索并看到可以使用java.util.Calendar,并且可以清除随时间戳一起使用的字段值,例如MINUTESECOND等设置为0的值。我尝试过此代码,但遇到问题:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
package com.java.date.util

import java.util.Calendar;
import java.util.Date;

public class DateWithNoTimestamp {
    public final static String dateOnly(Date date) {
        String dateNoTime = date.toString();
        Calendar cal = Calendar.getInstance();
        cal.setTime(date);
        cal.set(Calendar.HOUR_OF_DAY, 0)
        cal.set(Calendar.MINUTE, 0);
        cal.set(Calendar.SECOND, 0);
        cal.set(Calendar.MILLISECOND, 0);

        return dateNoTime;
    }
}

我是一个刚开始编程的人,现在我只是想了解一些基础知识。我知道有一种方法可以显示日期的格式,我只是不确定如何进行。


使用一个SimpleDateFormat——这只是一条线:

1
return new SimpleDateFormat("yyyyMMdd").format(new Date());

如果您需要不同的格式,请使用dd/MM/yyyy等。

请注意,new Date()是当前日期,因此如果需要当前日期,则无需向方法中传递日期。

另外,避免使用日历类:它有点坏。


日期格式如下:(这对我有效)

1
2
3
4
5
6
Calendar calendar = Calendar.getInstance();
calendar.add(Calendar.DATE, 1);
SimpleDateFormat myFormat = new SimpleDateFormat("yyyy-MM-dd");
System.out.println(calendar.getTime()); // it gives"Sab May 17 10:22:23 EST 2014"
String formatted = myFormat.format(calendar.getTime());
System.out.println(formatted);         // it gives"2014-05-17"

干杯!


您可以使用new Date()获取当前日期/时间的实例。然后,您可以使用您提供的格式的SimpleDateFormatter,只获取日/月/年。