一起Talk Android吧(第四百三十四回:Java8中的时区类)


各位看官们大家好,上一回中咱们说的例子是"Java8中的日期时间类",这一回中咱们说的例子是" Java8中的时区类"。闲话休提,言归正转,让我们一起Talk Android吧!

在Java8中使用ZonedId类来表示时区,使用ZonedDateTime类表示包含时区的时间,这两个类提供了许多方法来操作时区和时间,接下来我们将详细这些方法。

获取时区

获取时区使用systemDefault()方法,不需要添加任何参数就可以获取到当前系统的默认时区,也可以使用getAvailableZoneIds()方法获取所有的时区,这两个方法都是类的静态方法,直接调用就可以。

获取带时区的时间使用now()方法,不需要添加任何参数就可以获取到当前时区的时间。该方法是重载方法,可以通过参数获取指定时区的时间,参数为ZonedId类型的对象。

ZonedDateTime类还提供了其它方法来获取单独的时分秒,它们的用法和LocalTime类中的方法类似,这里就不再介绍了。

修改时区

修改时区使用of()方法,把具体的时区当作参数传递给此方法就会生成ZonedId类对象,这个操作相当于修改了时区。

示例程序

//    ZonedDateTime主要用来获取指定时区的日期和时间
    private void showZonedDateTime() {

        //获取当前系统的时区,其结果是:Asia/Shanghai
        ZoneId zoneId = ZoneId.systemDefault();
        //获取所有的时区,例如:[Asia/Aden, America/Cuiaba, Africa/Nairobi,  Asia/Aqtau,   Africa/Cairo...]
        Set<String> zoneIds = ZoneId.getAvailableZoneIds();
        Log.d(TAG, "showZonedDateTime: currentZone: "+zoneId+" All Zones: "+zoneIds.toString());

        //创建zoneId对象
        zoneId = ZoneId.of("Europe/London");
        Log.d(TAG, "showZonedDateTime: "+zoneId);
        //使用zoneId对象创建包含指定时区的日期和时间,ZonedDateTime类的方法和LocalDateTime类的方法类似,不再一一列出
        ZonedDateTime zonedDateTime = ZonedDateTime.now();
        Log.d(TAG, "showZonedDateTime, now: "+zonedDateTime+ "London: "+ZonedDateTime.now(zoneId));
    }

看官们,上面是完整的示例程序,程序中添加有详细的注释,这样有助于大家理解程序,我在这里就不演示程序的运行结果了,希望大家自己动手去实践。

看官们,关于"Java8中的时区类"的例子咱们就介绍到这里,欲知后面还有什么例子,且听下回分解!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

talk_8

真诚赞赏,手有余香

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值