猿问

如何检查给定的字符串转换为 long 是否是 EpochMills?

您好有什么方法可以检查给定的字符串是否是 epoch millis


java.time 包中的以下代码转换为 EpochMillis。


我正在寻找 isEpochMillis 以返回布尔条件。


是否有来自 apache commons 或 google guava 的现成的 api 来检查这个?就像 isDouble isLong 等...


/**

     * Obtains an instance of {@code Instant} using milliseconds from the

     * epoch of 1970-01-01T00:00:00Z.

     * <p>

     * The seconds and nanoseconds are extracted from the specified milliseconds.

     *

     * @param epochMilli  the number of milliseconds from 1970-01-01T00:00:00Z

     * @return an instant, not null

     * @throws DateTimeException if the instant exceeds the maximum or minimum instant

     */

    public static Instant ofEpochMilli(long epochMilli) {

        long secs = Math.floorDiv(epochMilli, 1000);

        int mos = (int)Math.floorMod(epochMilli, 1000);

        return create(secs, mos * 1000_000);

    }


Helenr
浏览 174回答 3
3回答

有只小跳蛙

任何正整数在理论上都是有效的。您可以根据自己对领域的了解添加约束。例如:未来没有时间戳,因此所有大于 Instant.now().toEpochMillis() 的数字都是无效的。

慕田峪4524236

没有,但这是该方法的实现:public&nbsp;static&nbsp;boolean&nbsp;isEpochMillis(long&nbsp;epochMilli)&nbsp;{&nbsp; &nbsp;&nbsp;return&nbsp;true;&nbsp; }当然,既然您看到了它的实现,您可能会发现这个方法是不必要的。

繁花不似锦

epochMilli 是自 1970-01-01 以来的毫秒数。所有长值都是有效的 epochMillis。归结为您允许的日期。那将是你的范围。-2 将导致1969-12-31T23:59:59.998 Z。
随时随地看视频慕课网APP

相关分类

Java
我要回答