Java中ZonedDateTime使用详解及时间转化 |
您所在的位置:网站首页 › 毫秒转换日期工具有哪些 › Java中ZonedDateTime使用详解及时间转化 |
1、概述
带时区的日期和时间:ZoneDateTime 2、认识时区图不同的国家处在不同的时区上,伦敦为中时区,中国采用东八区时间,意思是比标准时间早八个小时。 由于地球是圆形的,根据地球自转的方向,东八区会比中时区提前进入新的一天,看见太阳。 Java中的ZoneDateTime就可以获取同一天,不同时区的时间。 ![]() 美国伦敦时间,UTC ZonedDateTime zoneDateTimeNow01 = ZonedDateTime.now(Clock.systemUTC()); 4.2、获取指定时区的时间 ZoneId zoneId= ZoneId.systemDefault();//获取当前计算机默认的时区,也就是东八区时间 ZonedDateTime zoneDateTimeNow03 = ZonedDateTime.now(zoneId); 4.3、获取东八区时间 //LocalDateTime能够获取当前东八区的时间 LocalDateTime localDateTimeNow = LocalDateTime.now(); 5、使用ZoneDateTime转换时间说明1:Z(zero)是表示0时区,对我们国家来说,采用北京时间,处于东八区 UTC+8。所以带Z的时间格式,转换成北京时间需要加上 8 个小时。 说明2:T:表示时间元素的开始。 5.1、字符串转ZonedDateTime public static void main(String[] args) { //获取默认的时区,输出为:Asia/Shanghai ZoneId zoneId= ZoneId.systemDefault(); //定时时间格式,T表示时间元素的开始, String timePattern = "yyyy-MM-dd'T'HH:mm:ssZ"; DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern(timePattern); //定义一个字符串类型的时间 String time1="2023-06-06T00:18:14+0800"; //将时间类型的字符串转化成ZonedDateTime ZonedDateTime zonedDateTime1 = ZonedDateTime.parse(time1, dateTimeFormatter); //获取东八区时间 ZonedDateTime ZonedDateTime2 = zonedDateTime.withZoneSameInstant(zoneId); //输出:2023-06-06T00:18:14+08:00[Asia/Shanghai] System.out.println(ZonedDateTime2); } 5.2、ZonedDateTime转LocalDateTime/LocalDate/LocalTime【代码】 public static void main(String[] args) { ZonedDateTime zonedDateTime = ZonedDateTime.now(); //转LocalDate LocalDate localDate= zonedDateTime.toLocalDate(); System.out.println("localDate=>"+localDate); //LocalTime LocalTime localTime= zonedDateTime.toLocalTime(); System.out.println("localTime=>"+localTime); //转LocalDateTime LocalDateTime localDateTime= zonedDateTime.toLocalDateTime(); System.out.println("localDateTime=>"+localDateTime); //转Instant Instant instant= zonedDateTime.toInstant(); System.out.println("instant=>"+instant); }【输出结果】 localDate=>2023-06-06 localTime=>00:57:07.011 localDateTime=>2023-06-06T00:57:07.011 instant=>2023-06-05T16:57:07.011Z 6、JDK.8日期和时间API概述新增的API严格区分了时刻、本地日期、本地时间,并且,对日期和时间进行运算更加方便。 其次,新API的类型几乎全部是不变类型(和String的使用类似),可以放心使用不必担心被修改。 LocalDateTime是JDK1.8开始的新特性,主要的核心类有: 1、时间和日期类:LocalDateTime-获取年月日时分秒 LocalDate-年月日 LocalTime-时分秒 【2、带时区的日期和时间:ZonedDateTime】 详解地址:https://blog.csdn.net/tangshiyilang/article/details/131058869 【3、时刻:Instant是时间线上的一个瞬时点。】 Java中Date类的toInstant()方法用于将Date对象转换为Instant对象。在转换过程中会创建一个Instant,用于表示时间轴上与此日期相同的点。 【4、时区:ZoneId,ZoneOffSet】 java.time.ZoneOffset.ofHours(int hours)方法使用以小时为单位的偏移量获取 ZoneOffset 的实例 ZoneId.systemDefault():获取时区名称 输出:Asia/Shanghai 【5、时间间隔:Period,Duration】 使用详解:https://blog.csdn.net/tangshiyilang/article/details/131178453 6、Month月份 7、Week周 8、Clock:
|
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |