加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

如何获取Java中Swatch Internet Time的当前时间?

发布时间:2020-12-15 04:18:57 所属栏目:Java 来源:网络整理
导读:如何在 Java中获得 .beats ( Swatch Internet Time)的当前时间? 解决方法 基本上,计算.beats当前时间的公式是: beats = ( UTC+1seconds + ( UTC+1minutes * 60 ) + ( UTC+1hours * 3600 ) ) / 86,4 向下舍入,你有当前的时间.beats. 新Java代码(java.time)
如何在 Java中获得 .beats( Swatch Internet Time)的当前时间?

解决方法

基本上,计算.beats当前时间的公式是:

beats = ( UTC+1seconds + ( UTC+1minutes * 60 ) + ( UTC+1hours * 3600 ) ) / 86,4

向下舍入,你有当前的时间.beats.

新Java代码(java.time)

在Java 8及更高版本中,我们有新的java.time package(由JSR 310定义,灵感来自Joda-Time,Tutorial,由ThreeTen Extra项目扩展).

public static int getCurrentTimeInBeats() {
    ZonedDateTime now = ZonedDateTime.now( ZoneId.of( "UTC+01:00" ) );  // "Biel Meantime" = UTC+01:00
    int beats = (int) ( ( now.get( ChronoField.SECOND_OF_MINUTE) + ( now.get( ChronoField.MINUTE_OF_HOUR ) * 60 ) + ( now.get( ChronoField.HOUR_OF_DAY) * 3600 ) ) / 86.4 );
    return beats;
}

旧Java代码

如果您不能在Java 8及更高版本中使用新的java.time包,则可以使用与早期Java版本捆绑在一起的日期时间类.

public static int getCurrentTimeInBeats() {
    java.util.Calendar cal = java.util.Calendar.getInstance( java.util.TimeZone.getTimeZone( "GMT+01:00" ) );
    int beats = (int) ( ( cal.get( java.util.Calendar.SECOND ) + ( cal.get( java.util.Calendar.MINUTE ) * 60 ) + ( cal.get( java.util.Calendar.HOUR_OF_DAY ) * 3600 ) ) / 86.4 );
    return beats;
}

请注意,根据TimeZone.getTimeZone的文档,在GMT 01:00而不是“UTC”中使用“GMT”.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读