我有这个Date date
输入变量,如何设置日期为1,月份为1,年份为1970年?我需要这样做,因为如果它包含在Date类型的范围内,则检查该日期,并且范围是检查具有默认日期1-1-1970。所以我想完全废弃日期的月,日和年部分,只检查时间是否包含在范围内。通过将输入日期设置为1-1-1970将绕过该问题。
答案 0 :(得分:3)
您可以使用Calendar
执行此操作:
Calendar calendar = Calendar.getInstance();
calendar.setTime(yourDate);
calendar.set(Calendar.YEAR, 1970);
calendar.set(Calendar.MONTH, Calendar.JANUARY);
calendar.set(Calendar.DATE, 1);
yourDate = calendar.getTime();
答案 1 :(得分:1)
如果我理解您的要求,一个解决方案将使用Calendar -
public static Date getDate(int hh, int mm, int ss) {
Calendar cal = Calendar.getInstance();
cal.set(Calendar.YEAR, 1970);
cal.set(Calendar.MONTH, Calendar.JANUARY);
cal.set(Calendar.DAY_OF_MONTH, 1);
cal.set(Calendar.HOUR, hh);
cal.set(Calendar.MINUTE, mm);
cal.set(Calendar.SECOND, ss);
return cal.getTime();
}
// Another approach; using epoch.
public static Date getDate2(int hh, int mm, int ss) {
long epoch = new GregorianCalendar(1970, 0, 1).getTimeInMillis();
long v = (ss * 1000) + (mm * 60 * 1000) + (hh * 60 * 60 * 1000);
return new Date(epoch + v);
}
public static void main(String args[]) {
Date a = getDate(1, 2, 3);
Date b = getDate2(1, 2, 3);
// Do we get the "same" Date?
System.out.println(a.toString().equals(b.toString()));
}
输出
true