用于输出时间戳的java中的util类

vddsk6oq  于 2021-08-25  发布在  Java
关注(0)|答案(1)|浏览(305)

我是java新手,我需要创建一个方法,该方法必须输出当前日期时间+2个月的时间戳。基本上,在我的代码中,我使用了硬编码的时间戳,它在每2个月内就会过期,所以我想用一个方法的输出来替换硬编码值,该方法将计算2个月后的时间戳,我可以将输出传递给我的方法,而不是硬编码。有人能帮我的实用工具,以满足我的要求。 rules.add(CreateDiscountV8.createDiscountV8Rule(1564185600000l, 1640952000000l, 0, ruleEffectiveTimes, "P", "AC", "E", "AC", 0l, Long.MAX_VALUE, 0l, Long.MAX_VALUE,"bexdl", "x-in-y",null, 100, DEFAULT_MIN_TRIP_SEGMENTS, DEFAULT_MAX_TRIP_SEGMENTS, false, 1)); 我正在尝试类似的东西,但编译时出错。

public class GetDynamicTimestamp {
    public static EndDateTimestamp getEndDate()
    {
        long currentTimestamp = System.currentTimeMillis();
        long enddatetimestamp = currentTimestamp + 200000000l;
        return enddatetimestamp;
    }
}
2izufjch

2izufjch1#

使用java.time(现代日期时间api)的解决方案:

import java.time.OffsetDateTime;
import java.time.ZoneOffset;

public class Main {
    public static void main(String[] args) {
        // Test
        System.out.println(getEndDate());
    }

    public static long getEndDate() {
        return OffsetDateTime.now(ZoneOffset.UTC)
                .plusMonths(2)
                .toInstant()
                .toEpochMilli();
    }
}

在线演示
从trail:date-time了解有关现代日期时间api的更多信息。

你的代码出了什么问题

在代码中,函数的返回类型, getEndDateEndDateTimestamp 而你却返回了一个 long 价值此外,如果有专门的api实现同样的计算,那么手动执行计算也不是一个好主意。

相关问题