2

日付を表すlong値を持っています。つまり、日付をlongに変換しました。次に、long値自体を次の日付にインクリメントしたいのですが、long値に対して操作を実行して次の日付を取得する方法を説明します。

long endDate=1454756400000 

今日の日付の長い値を表します。これはミリ秒です(00:00:00 GMT、1970年1月1日)。

4

7 に答える 7

3

表現は何ですか?ある時代からの秒数?

秒の場合、1日あたりの秒数(60 * 60 * 24)を追加できますか?次に、印刷可能なものに隠蔽します。

于 2012-05-02T14:25:37.990 に答える
2

Calendarクラスを使用します

Calendar rightNow = Calendar.getInstance();
rightNow.add(Calendar.DATE, 1); //add one day

long nextDayInMillis = rightNow.getTimeInMillis()

カレンダー用のJavaAPI:http: //docs.oracle.com/javase/7/docs/api/java/util/Calendar.html

于 2012-05-02T14:26:46.690 に答える
2

1日=86400 000 ms

したがって:

final long DAY_TO_MS = 86400000;
long today = 1454756400000;

long tomorrow = today + DAY_TO_MS;
于 2012-05-02T14:29:57.143 に答える
1

long longvalue = ...;

java.util.Date dateValue = new java.util.Date(longvalue);

これで、日付をインクリメントしてから、longに戻すことができます。

于 2012-05-02T14:25:46.647 に答える
1

私があなたが望むものを理解しているなら:

long endDate=1454756400000L;
        GregorianCalendar calendar = new GregorianCalendar();
        calendar.setTime(new Date(endDate));
        calendar.add(Calendar.DAY_OF_MONTH, 1);
        System.out.println(calendar.getTime().getTime());

これにより、日付に1日が追加され、対応する長い時間が出力されます

于 2012-05-02T14:27:26.373 に答える
1

Javaのカレンダーを使用できます。

Calendar calendar = Calendar.getInstance();
calendar.setTime(<YourLongValue>);

次に、次を追加します。

calender.add(Calendar.DAY, 1);
于 2012-05-02T14:29:47.870 に答える
1
long endDate=1454756400000L;
Calendar calendar = Calendar.getInstance();
calendar.setTime(new Date(endDate));;
calendar.add(Calendar.DAY_OF_YEAR, 1);
Date newDate = calendar.getTime();
long newEndDate = newDate.getTime();

1日の長さに固定の長い値を使用すると、うるう秒(およびその他のコーナーケース)が失われます。

于 2012-05-02T14:32:05.633 に答える