2

我有一个表示日期的长值,即已将日期转换为长,现在我想将长值本身增加到下一个日期,如何对长值执行操作以获得下一个日期。

long endDate=1454756400000 

表示今天的日期长值,单位为毫秒(格林威治标准时间 00:00:00,1970 年 1 月 1 日)。

4

7 回答 7

3

代表作是什么?自某个时代以来的秒数?

如果是秒,可以每天加秒(60*60*24)?然后隐蔽回可打印。

于 2012-05-02T14:25:37.990 回答
2

您使用日历类

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

于 2012-05-02T14:26:46.690 回答
2

1 天 = 86 400 000 毫秒

所以:

final long DAY_TO_MS = 86400000;
long today = 1454756400000;

long tomorrow = today + DAY_TO_MS;
于 2012-05-02T14:29:57.143 回答
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();

使用固定的 long 值表示一天有多长会错过闰秒(和其他极端情况)。

于 2012-05-02T14:32:05.633 回答
1

长长值 = ...;

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

现在,您可以增加日期,然后将其转换回长。

于 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 回答