- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
如何转换一个特定的小时,例如18:00,到毫秒?
我需要这个,以便如果时间在 12:00 到 18:00 之间,我可以做一些事情,如果时间不在 12:00 到 18:00 之间,我可以做其他事情。
我通过以下方式获取当前时间:
Private long time;
time = System.currentTimeMillis();
但我不知道如何将一小时转换为毫秒。
网上搜了一下好像如果用System.currentTimeMillis()
它会给我当前日期和小时的毫秒数,但我需要它每天更新,如下所示:
今天的时间(以毫秒为单位)是这样的:1516994140294
。但这个号码包含这个:Fri Jan 26 2018 19:15:40
。因此,如果我在这一天的 12:00 和 18:00 使用毫秒,这意味着明天它不会按我想要的方式工作。
那么你能帮我提供一个示例或文档吗?一切都可以帮助我:)并提前致谢。
最佳答案
LocalTime.now() // Capture current moment. Better to explicitly pass a `ZoneId` object than rely implicitly on the JVM’s current default time zone.
.isBefore( LocalTime.of( 18 , 0 ) ) // Compare the current time-of-day against the limit.
无需计算毫秒。 Java 有用于这项工作的智能日期时间类,可以在 Java 8 及更高版本中内置的 java.time 包中找到。对于早期的 Android,请参阅下面的最后一个项目符号。
不需要System.currentTimeMillis()
。 java.time 类执行相同的工作。
本地时间
要获取当前时间(不带日期和时区),请使用 LocalTime
.
确定当前时间需要时区。对于任何给定时刻,一天中的时间因区域而异。如果省略,则隐式应用 JVM 当前的默认时区。最好明确指定您想要的/预期的时区,因为默认时区可能在运行时之前或运行期间的任何时刻发生变化。
指定proper time zone name格式为大洲/地区
,如America/Montreal
, Africa/Casablanca
,或太平洋/奥克兰
。切勿使用 3-4 个字母的缩写,例如 EST
或 IST
,因为它们不是真正的时区,不是标准化的,甚至不是唯一的( !)。
ZoneId z = ZoneId.of( "Africa/Tunis" ) ;
LocalTime now = LocalTime.now( z ) ;
与方法 isBefore
、isAfter
和 equals
进行比较。
询问“等于或晚于中午”的更简短的方式是“不在中午之前”。
boolean isAfternoon =
( ! now.isBefore( LocalTime.NOON ) )
&&
now.isBefore( LocalTime.of( 18 , 0 ) )
;
如果您担心 Daylight Saving Time( DST) 等异常现象的影响,探索使用 ZonedDateTime
而不仅仅是 LocalTime
。
java.time框架内置于 Java 8 及更高版本中。这些类取代了麻烦的旧类 legacy日期时间类,例如 java.util.Date
, Calendar
, & SimpleDateFormat
.
Joda-Time项目,现在位于 maintenance mode ,建议迁移到java.time类。
要了解更多信息,请参阅 Oracle Tutorial 。并在 Stack Overflow 上搜索许多示例和解释。规范为JSR 310 .
从哪里获取java.time类?
关于java - 如何将特定时间转换为毫秒,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48468155/
我是一名优秀的程序员,十分优秀!