- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我需要计算今天凌晨 00:00 和明天凌晨 00:00。
我正在努力喜欢这个
private static void some(final Date now) {
final Calendar calendar = Calendar.getInstance();
calendar.setTime(now);
calendar.set(Calendar.MILLISECOND, 0);
calendar.set(Calendar.SECOND, 0);
calendar.set(Calendar.MINUTE, 0);
calendar.set(Calendar.HOUR_OF_DAY, 0);
final Date min = calendar.getTime(); // 00:00 AM of today
calendar.add(Calendar.DATE, 1);
final Date max = calendar.getTime(); // 00:00 AM of tomorrow
}
有没有更好的(或简单的其他)方法来做到这一点?
最佳答案
您尝试执行的操作存在一些问题。
首先,“今天”对于日期
而言并不是一个明确定义的概念。 Date
基本上只是自 Unix 纪元以来的毫秒数的包装:对应于该时刻的日历日期是不同的,具体取决于您所在的时区。
例如,new Date(1469584693000)
表示的时刻是 2016 年 7 月 27 日在伦敦;但那是在 2016 年 7 月 26 日在纽约。
当然,您可以依赖 JVM 的默认时区,但这会使代码的行为依赖于 JVM 的配置。
其次,“午夜”并不总是存在的:例如在 Asia/Gaza
时区,夏令时从午夜开始,这意味着时钟从一天的 23:59:59 跳到下一天的 01:00:00(参见 Ideone demo )。这就是为什么 Java 8 时间 API 具有称为 atStartOfDay
的方法的原因。 ,而不是 atMidnight
。
因此,您可以在 Java 8 中将它们放在一起:
private static void some(final Date now, ZoneId zone) {
Instant instant = now.toInstant(); // Convert from old legacy class to modern java.time class.
ZonedDateTime zdt = instant.atZone(zone); // Apply a time zone to the UTC value.
LocalDate today = zdt.toLocalDate(); // Extract a date-only value, without time-of-day and without time zone.
ZonedDateTime startOfDayToday = today.atStartOfDay(zone); // Determine first moment of the day.
ZonedDateTime startOfDayTomorrow = today.plusDays(1).atStartOfDay(zone);
// ...
}
当然也可以直接将Instant
或ZonedDateTime
传入方法;并且您可以使用显式常量 ZoneId
,例如ZoneId.of("UTC")
.
关于java - 我怎样才能从给定的瞬间得到两个午夜?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38607864/
我发现了类似的问题here ,但这与我想做的事情无关。我在互联网上做了很多研究,我确定 Delphi 正在按设计或预期工作,如果时间为零,它会忽略时间。我有一个在 ListView 中显示日期和时间的
这个问题在这里已经有了答案: 关闭 11 年前。 Possible Duplicate: Background Worker Check For When It's Midnight? 是否有我可以
尝试创建新日期并将其设置为 UTC ISO 午夜并获得如下“2017-07-12T00:00:00”的输出,但到目前为止没有成功。 var dateNow = new Date(); var date
我如何计算今天的 NSTimeInterval 时分秒为零? 我知道今天的NSTimeInterval是这样的: NSTimeInterval today = [[NSDate date] time
我正在尝试创建一个created_at查询范围,它将捕获从UTC午夜(数据库默认值)到现在创建的所有记录。过去我可以使用以下方式查询时间范围: created_at => (24.hours.ago.
我试图将日期传递给 hubspot。但它显示以下错误消息[消息] => 1462127400 是 22:8:47.400 UTC,不是午夜! 如何使用 PHP 将日期转换为 UTC 午夜格式 最佳答案
我试图将日期传递给 hubspot。但它显示以下错误消息[消息] => 1462127400 是 22:8:47.400 UTC,不是午夜! 如何使用 PHP 将日期转换为 UTC 午夜格式 最佳答案
我想使用 Quartz 的 CronTrigger 每 24 小时安排一个组件例如-午夜。 以下表达式每 5 秒运行一次 CronScheduleBuilder.cronSchedule("0/5 *
我有一列包含一系列时间戳的列。最初我认为它们在 Unix 时间戳系统中,所以我使用以下代码将它们转换为日期时间。 big_frame['date'] = pd.to_datetime(big_fram
我是一名优秀的程序员,十分优秀!