1

如何将前一天晚上的 11:59 PM 和今晚的 12:00 AM 表示为长值???

这么多不同的日期选项我很困惑

4

2 回答 2

0

you can use this calculation to do so.

//11:59 PM of the previous night and 12:00 AM of tonight 

    Calendar prevDate = Calendar.getInstance();
    if(prevDate.get(Calendar.DATE)==1)
    {
        if(prevDate.get(Calendar.MONTH)==0)
        {
            prevDate.set(Calendar.YEAR, prevDate.get(Calendar.YEAR)-1);
            prevDate.set(Calendar.MONTH,Calendar.DECEMBER);
            prevDate.set(Calendar.DAY_OF_MONTH,31);
        }
        else
        {
            prevDate.set(Calendar.MONTH,prevDate.get(Calendar.MONTH)-1);
            prevDate.set(Calendar.DAY_OF_MONTH, prevDate.getMaximum(Calendar.DAY_OF_MONTH));
        }
    }   
    else
    {
        prevDate.set(Calendar.DAY_OF_MONTH,prevDate.get(Calendar.DAY_OF_MONTH)-1);
    }

    prevDate.set(Calendar.HOUR_OF_DAY, 11);
    prevDate.set(Calendar.MINUTE, 59);

    Calendar currDate = Calendar.getInstance();
    currDate.set(Calendar.HOUR_OF_DAY, 0);
    currDate.set(Calendar.MINUTE, 0);

    long prevDateLong = prevDate.getTimeInMillis();
    long currDateLong = currDate.getTimeInMillis();

    Log.i("", prevDate.toString()+" >>>>>>>> "+currDate.toString());
    Log.i("", prevDateLong+" >>>>>>>>> "+currDateLong);
于 2012-10-29T05:32:29.283 回答
0

所有 Java 日期都在下面。这是自 1970 年 1 月 1 日午夜以来的毫秒数。

Date today = new SimpleDateFormat("yyyy-MMM-dd").parse("2012-Oct-28");  // today at midnight
long millis = today.getTime();

我建议你看看java.util.Calendar课堂。这并不难,只是乏味。

http://www.exampledepot.com/search/luceneapi_node/Calendar

于 2012-10-29T00:36:01.040 回答