日付を表すlong値を持っています。つまり、日付をlongに変換しました。次に、long値自体を次の日付にインクリメントしたいのですが、long値に対して操作を実行して次の日付を取得する方法を説明します。
long endDate=1454756400000
今日の日付の長い値を表します。これはミリ秒です(00:00:00 GMT、1970年1月1日)。
表現は何ですか?ある時代からの秒数?
秒の場合、1日あたりの秒数(60 * 60 * 24)を追加できますか?次に、印刷可能なものに隠蔽します。
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
1日=86400 000 ms
したがって:
final long DAY_TO_MS = 86400000;
long today = 1454756400000;
long tomorrow = today + DAY_TO_MS;
long longvalue = ...;
java.util.Date dateValue = new java.util.Date(longvalue);
これで、日付をインクリメントしてから、longに戻すことができます。
私があなたが望むものを理解しているなら:
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日が追加され、対応する長い時間が出力されます
Javaのカレンダーを使用できます。
Calendar calendar = Calendar.getInstance();
calendar.setTime(<YourLongValue>);
次に、次を追加します。
calender.add(Calendar.DAY, 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日の長さに固定の長い値を使用すると、うるう秒(およびその他のコーナーケース)が失われます。