我们应该在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);
}
必须有更好的方式......
答案 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”图书馆:
答案 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);
}