如何在日期格式中将时间值设置为00:00:00,如Tue Dec 28 17:36:28 IST 2010?

时间:2010-12-29 12:12:37

标签: java date calendar

我正在使用Java和 我正在尝试下面的代码

Calendar cal1 = Calendar.getInstance();  
cal.setTime(now1);
cal1.add(Calendar.DAY_OF_YEAR, -1);  
java.util.Date yesterday = (Date) cal1.getTime();  
System.out.println(yesterday.toString());
java.sql.Timestamp yesterdayTimestamp = new java.sql.Timestamp(tomorrow.getTime());
System.out.println(yesterdayTimestamp.toString()); 

我的输出为Tue Dec 28 17:36:28 IST 2010 现在我想将时间设置为00:00:00 Tue Dec 28 17:36:28 IST 2010将为Tue Dec 28 00:00:00 IST 2010

我不知道怎么做?

4 个答案:

答案 0 :(得分:5)

如果我已正确理解问题,您需要将与时间相关的字段设置为0。

        Calendar cal1 = Calendar.getInstance();  
        cal1.set(Calendar.HOUR_OF_DAY, 0);
        cal1.set(Calendar.MINUTE, 0);
        cal1.set(Calendar.SECOND, 0);
        cal1.set(Calendar.MILLISECOND, 0);
        System.out.println(cal1.getTime());

<强>输出

Wed Dec 29 00:00:00 IST 2010

答案 1 :(得分:3)

您需要设置时间组件的各个元素。

http://download.oracle.com/javase/1.5.0/docs/api/java/util/Calendar.html#set(int,int)

cal1.set(Calendar.HOUR_OF_DAY, 0);
cal1.set(Calendar.MINUTE, 0);
cal1.set(Calendar.SECOND, 0);

答案 2 :(得分:1)

如果你只需要日期,而不是时间,你应该使用java.sql.Date。

答案 3 :(得分:1)

在您的日历中,您可以将相应字段设置为0:cal.set(Calendar.HOUR_OF_DAY, 0)

或者,您可以使用joda-time,其DateMidnight类用于此目的。

顺便提一下,如评论中所述 - 使用格式化程序。例如SimpleDateFormat。您不应该依赖于对象的toString()表示。