我想知道日期的天数,getDay()方法返回错误的答案,怎么可以 我知道正确的天数?
答案 0 :(得分:5)
您应该真正探索java.util.Calendar API
答案 1 :(得分:3)
您需要使用Calendar
类。这是一个例子:
Date date = new Date();
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
System.out.println(calendar.get(Calendar.DAY_OF_MONTH));
getDate()
类上有一个Date
方法,但它已被弃用,因为它没有正确处理某些边缘情况。
您尝试使用的方法(java.util.Date.getDay()
)实际上会返回星期几,而不是月中的某天。无论如何,它已被弃用,与上述类似。
答案 2 :(得分:2)
寻找这个月的哪一天?检查此http://download.oracle.com/javase/1.4.2/docs/api/java/util/Date.html#getDate()
修改强>
仅当您使用Date时才会这样(不推荐使用Date,因为大部分方法都是不推荐使用的)。如果您愿意使用Calendar(这是更好的而且没有完全废弃的方法),您可以执行以下操作:
int dayOfTheMonth = Calendar.getInstance().get(Calendar.DATE);
答案 3 :(得分:2)
java.util.Date
实际上只保留了快速日期到整数转换,对于任何与日期相关的实际数学,你需要使用java.util.Calendar
的子类,它可以找出像那里多少小时的事情是在一天(如果你还记得夏令时等,这不是常数),一个月中有多少天(再次不是常数)等等。
由于您可能正在处理Gregorian日历(12个月,1月,2月等日历),因此您可能希望使用java.util.GregorianCalendar。还有其他可用的日历,即使它们可能并非全部附带JVM。
答案 4 :(得分:1)
你的意思是文档说不使用的那个?
int getDay()
Deprecated. As of JDK version 1.1, replaced by Calendar.get(Calendar.DAY_OF_WEEK).
使用Calendar
类。