2014-05-02 42 views
0

我有這個Date date輸入變量,如何將日期的日期設置爲1,月份爲1,年份爲1970年?我需要這樣做,因爲如果該日期包含在日期類型的範圍內,並且正在檢查的範圍具有默認日期1-1-1970,則會檢查此日期。因此,我想僅刪除日期的月份,日期和年份部分,只檢查時間以查看是否包含在範圍內。通過將它們的輸入日期設置爲1-1-1970將繞過該問題。將日期的日/月/年設置爲默認值,只關心時間

回答

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(); 
+0

的http:// i.imgur.com/Tvl46iw.gif – mre

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 
相關問題