Util class in java 输出时间戳

Util class in java to output timestamp

我是 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;
    }
}

解决方案使用 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();
    }
}

ONLINE DEMO

Trail: Date Time.

了解有关现代日期时间 API 的更多信息

你的代码出了什么问题

在您的代码中,函数的 return 类型 getEndDateEndDateTimestamp 而您正在 returning 一个 long 值。此外,如果有专门的 API 来实现相同的目的,手动执行计算也不是一个好主意。