如何检查以毫秒为单位的给定时间是否是昨天?

给定一个以毫秒为单位的时间,你如何检查它是否是昨天?



qq_遁去的一_1
浏览 189回答 3
3回答

白板的微信

您首先将毫秒转换为Date或LocalDate,然后运行比较。这是一个简单的例子:import java.time.*;class DateCheckSample {    public static void main(String[] args) {        // Our input date        long millis = System.currentTimeMillis();        // Convert the millis to a LocalDate        Instant instant = Instant.ofEpochMilli(millis);        LocalDate inputDate = instant.atZone(ZoneId.systemDefault()).toLocalDate();        // Grab today's date        LocalDate todaysDate = LocalDate.now();        System.out.println(millis);        // Check if date is yesterday        if (todaysDate.minusDays(1).equals(inputDate)) {            System.out.println(inputDate + " was yesterday!");        } else {            System.out.println(inputDate + " was NOT yeseterday!");        }    }}结果:2019-02-16 was NOT yesterday!如果您想确认它是否正常工作,只需在运行前减去100000000。millis旁注:正如您对问题的评论中指出的那样,这23:59不是一个毫秒值......

呼唤远方

如果您不想使用Date,您可以简单地使用模数运算符和一些巧妙的算术。System#currentTimeMillis返回自 1970 年 1 月 1 日午夜 (00:00) 以来经过的毫秒数。将此与一天中的毫秒数(86,400,000)结合起来,我们可以计算出一天的最后开始时间——也就是今天开始的时间。然后我们可以查看给我们的时间是小于还是大于该值。boolean isToday(long milliseconds) {&nbsp; &nbsp; long now = System.currentTimeMillis();&nbsp; &nbsp; long todayStart = now - (now % 86400000);&nbsp; &nbsp; if(milliseconds >= todayStart) {&nbsp; &nbsp; &nbsp; &nbsp; return true;&nbsp; &nbsp; }&nbsp; &nbsp; return false;}要检查某个时间是否是昨天而不是今天,我们只需检查它是否在今天开始和昨天开始之间。boolean isYesterday(long milliseconds) {&nbsp; &nbsp; long now = System.currentTimeMillis();&nbsp; &nbsp; long todayStart = now - (now % 86400000);&nbsp; &nbsp; long yesterdayStart = todayStart - 86400000;&nbsp; &nbsp; if(milliseconds >= yesterdayStart && < todayStart) {&nbsp; &nbsp; &nbsp; &nbsp; return true;&nbsp; &nbsp; }&nbsp; &nbsp; return false;}

翻阅古今

您可以将毫秒转换为Date,然后将日期与今天的Date.
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java