1

前夜の午後11時59分と今夜の午前12時を長い値で表すにはどうすればよいですか?

非常に多くの異なる日付オプションが混乱しています

4

2 に答える 2

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 に答える
0

この計算を使用してこれを行うことができます。

//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 に答える