我们应该在java中使用Date对象吗?

时间:2010-04-27 23:43:38

标签: java date

我们应该在java中使用de java.util.Date对象吗? 它有很多Deprecated方法,有点烦人,必须使用复杂的方法来做一些应该这么简单的事情。

我正在使用愚蠢的东西模仿getDate(),如:

    public static int toDayMonth (Date dt)
{
    DateFormat df = new SimpleDateFormat("dd");
    String day = df.format(dt);
    return Integer.parseInt(day);
}

必须有更好的方式......

4 个答案:

答案 0 :(得分:5)

可能是一个偏好问题,但我使用Joda Time

查看Joda Time的DateTime API, DateTime#dayOfMonth可能就是你要找的东西。

DateTime dt = new DateTime();
// no args in constructor returns current date and time
DateTime.Property day = dt.dayOfMonth();
System.out.println(day.get()); // prints '27'

答案 1 :(得分:3)

Java Date类因混乱和笨拙而臭名昭着。我建议看一下流行的“Joda Time”图书馆:

http://joda-time.sourceforge.net/

答案 2 :(得分:3)

不,你不应该再使用java.util.Date了。

GregorianCalendar是您可以使用的替代方案:

GregorianCalendar cal = new GregorianCalendar();
cal.set(Calendar.MONTH, Calendar.JUNE);
cal.set(Calendar.DAY_OF_MONTH, 27);
cal.set(Calendar.YEAR, 2010);

答案 3 :(得分:2)

每个方法的javadoc表示它已被替换的内容。要模仿getDate(),请使用:

Calendar.get(Calendar.DAY_OF_MONTH)

编辑:完整示例:

public static int toDayMonth (Date dt) {
    Calendar c = new GregorianCalendar();
    c.setTime(dt);
    return c.get(Calendar.DAY_OF_MONTH);
}