在上一篇文章中讲述了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);
}
}
2.获取时区总个数所有时区:
[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/…
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);
}
}
3.获取当前系统默认时区时区总个数:
600
我们位于中国,照理来说应该是北京时间,但是由于时区中没有 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);
}
}
4.获取指定时区当前系统默认的时区是:
Asia/Shanghai
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);
}
}
三、时间戳 1.获取当前时间的Instant对象(标准时间)America/Cuiaba
import java.time.Instant;
public class demo1 {public static void main(String[] args) {
Instant now = Instant.now();
System.out.println(now);
}
}
2.根据(秒/毫秒/纳秒)获取Instant对象2023-01-13T10:02:56.303Z
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)
}
}
3.指定时区1970-01-01T00:00:00z
1970-01-01T00:00:01Z
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);
}
}
4.判断调用者代表的时间是否在参数表示时间的前面2023-01-13T18:10:41.087+08:00[Asia/Shanghai]
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);
}
}
5.减少时间false
这里我们先指定一个时间,再在这个指定的时间上减去一定的时间,来具体实现这个方法。为了展示效果,所以将指定时间也打印输出
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元起,快前往官网查看详情吧