我有一个表示日期的长值,即已将日期转换为长,现在我想将长值本身增加到下一个日期,如何对长值执行操作以获得下一个日期。
long endDate=1454756400000
表示今天的日期长值,单位为毫秒(格林威治标准时间 00:00:00,1970 年 1 月 1 日)。
代表作是什么?自某个时代以来的秒数?
如果是秒,可以每天加秒(60*60*24)?然后隐蔽回可打印。
您使用日历类
Calendar rightNow = Calendar.getInstance();
rightNow.add(Calendar.DATE, 1); //add one day
long nextDayInMillis = rightNow.getTimeInMillis()
日历的 Java API:http: //docs.oracle.com/javase/7/docs/api/java/util/Calendar.html
1 天 = 86 400 000 毫秒
所以:
final long DAY_TO_MS = 86400000;
long today = 1454756400000;
long tomorrow = today + DAY_TO_MS;
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();
使用固定的 long 值表示一天有多长会错过闰秒(和其他极端情况)。
长长值 = ...;
java.util.Date dateValue = new java.util.Date(longvalue);
现在,您可以增加日期,然后将其转换回长。
如果我明白你想要什么:
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);