JDK8时间相关类超详细总结1(含多个实例)-创新互联

文章目录
  • 一、前言
  • 二、ZoneId类
    • 1.获取所有时区名称
    • 2.获取时区总个数
    • 3.获取当前系统默认时区
    • 4.获取指定时区
  • 三、时间戳
    • 1.获取当前时间的Instant对象(标准时间)
    • 2.根据(秒/毫秒/纳秒)获取Instant对象
    • 3.指定时区
    • 4.判断调用者代表的时间是否在参数表示时间的前面
    • 5.减少时间
  • 四、结语

创新互联-成都网站建设公司,专注网站制作、网站设计、网站营销推广,域名与空间,网络空间,成都网站托管有关企业网站制作方案、改版、费用等问题,请联系创新互联
一、前言

在上一篇文章中讲述了JDK7的时间相关类,本文将讲述JDK8中的时间相关类,这一块的知识点难度不大,但是有很多种方法,这篇文章就是做一个总结

二、ZoneId类 1.获取所有时区名称

通过这个方法,可以看到目前所以时区的名字

import java.time.ZoneId;
import java.util.Set;

public class demo1 {public static void main(String[] args) {SetzoneIds = ZoneId.getAvailableZoneIds();
        
        System.out.println("所有时区:");
        System.out.println(zoneIds);
      
    }
}

所有时区:
[Asia/Aden, America/Cuiaba, Etc/GMT+9, Etc/GMT+8, Africa/Nairobi, America/Marigot, Asia/Aqtau, Pacific/Kwajalein, America/El_Salvador, Asia/Pontianak, Africa/Cairo, Pacific/Pago_Pago, Africa/Mbabane, Asia/Kuching, Pacific/Honolulu, Pacific/Rarotonga, America/Guatemala, Australia/Hobart, Europe/…

2.获取时区总个数
import java.time.ZoneId;
import java.util.Set;

public class demo1 {public static void main(String[] args) {SetzoneIds = ZoneId.getAvailableZoneIds();
        
        System.out.println("时区总个数:");
        System.out.println(zoneIds.size);
      
    }
}

时区总个数:
600

3.获取当前系统默认时区

我们位于中国,照理来说应该是北京时间,但是由于时区中没有 Asia/Beijing,所以默认时区是上海

import java.time.ZoneId;
import java.util.Set;

public class demo1 {public static void main(String[] args) {SetzoneIds = ZoneId.getAvailableZoneIds();
        
		ZoneId zoneId = ZoneId.systemDefault();
		System.out.println("当前系统默认的时区是:");
		System.out.println(zoneId);
      
    }
}

当前系统默认的时区是:
Asia/Shanghai

4.获取指定时区
import java.time.ZoneId;
import java.util.Set;

public class demo1 {public static void main(String[] args) {SetzoneIds = ZoneId.getAvailableZoneIds();
        
		ZoneId zoneId1 = ZoneId.of("America/Cuiaba");
        System.out.println(zoneId1);
      
    }
}

America/Cuiaba

三、时间戳 1.获取当前时间的Instant对象(标准时间)
import java.time.Instant;
public class demo1 {public static void main(String[] args) {
		Instant now = Instant.now();
		System.out.println(now);
      
    }
}

2023-01-13T10:02:56.303Z

2.根据(秒/毫秒/纳秒)获取Instant对象
import java.time.Instant;
public class demo1 {public static void main(String[] args) {
	Instant instant1 = Instant.ofEpochMilli(0L);
	System.out.println(instant1);
	
	Instant instant2 = Instant.ofEpochSecond(1L);
	System.out.println(instant2)
      
    }
}

1970-01-01T00:00:00z
1970-01-01T00:00:01Z

3.指定时区
import java.time.Instant;
import java.time.ZoneId;
import java.time.ZonedDateTime;

public class demo1 {public static void main(String[] args) {
	ZonedDateTime time = Instant.now().atZone(ZoneId.of("Asia/Shanghai"));
	System.out.println(time);
      
    }
}

2023-01-13T18:10:41.087+08:00[Asia/Shanghai]

4.判断调用者代表的时间是否在参数表示时间的前面
import java.time.Instant;
public class demo1 {public static void main(String[] args) {
	Instant instant1=Instant.ofEpochMilli(0L);
	Instant instant2 =Instant.ofEpochMilli(1000L);
	boolean result=instant1.isBefore(instant2);
	System.out.println(result);
      
    }
}

true

import java.time.Instant;
public class demo1 {public static void main(String[] args) {Instant instant1=Instant.ofEpochMilli(0L);
		Instant instant2 =Instant.ofEpochMilli(1000L);
		boolean result = instant1.isAfter(instant2);
		System.out.println(result);
      
    }
}

false

5.减少时间

这里我们先指定一个时间,再在这个指定的时间上减去一定的时间,来具体实现这个方法。为了展示效果,所以将指定时间也打印输出

import java.time.Instant;
public class demo1 {public static void main(String[] args) {
	Instant instant1 =Instant.ofEpochMilli(5000L);
	System.out.println(instant1); 

	Instant instant2 =instant1.minusSeconds(2);
	System.out.println(instant2);
      
    }
}

1970-01-01T00:00:05Z
1970-01-01T00:00:03Z

四、结语

接下来会继续分享有关于时区的一些时间类

你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧


本文标题:JDK8时间相关类超详细总结1(含多个实例)-创新互联
当前地址:http://myzitong.com/article/ehidd.html