@Test
public void timeTest04() throws ParseException {
String dateTime = "2022-03-21T02:29:13.732843";
DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss.SSSSSS");
LocalDateTime parse1 = LocalDateTime.parse(dateTime, dateTimeFormatter);
ZonedDateTime dateAndTimeInNewYork = ZonedDateTime.of(parse1, ZoneId.of("GMT"));
String format1 = DateTimeFormatter.ofPattern("MMM dd,yyyy HH:mm:ss").format(dateAndTimeInNewYork.withZoneSameInstant(ZoneId.of("Asia/Hong_Kong")));
System.out.println(format1);
}
时间转换加上时区并且转换成自己想要的格式操作设置。
@Test
public void Test06() {
String dateTime = "2022-03-21T02:29:13.732843";
DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss.SSSSSS");
LocalDateTime parse = LocalDateTime.parse(dateTime, dateTimeFormatter);
LocalDateTime localDateTime = parse.atZone(ZoneId.of("GMT")).toLocalDateTime();
System.out.println(localDateTime);
LocalDateTime localDateTime1 = localDateTime.atZone(ZoneId.of("GMT"))
.withZoneSameInstant(ZoneId.of("Asia/Shanghai")).toLocalDateTime();
System.out.println(localDateTime1);
}
从系统时区转换成中国上海时区时间+8 设置操作。
GMT 和UTC 时区是一样的,但是Date 对象是无法满足我们这个地域时区的格式,因此可以使用
localDate 或者localTime,localDateTime
localDate 包含日期设置,
localTime 包含时间设置,
localDateTime 包含日期和时间,
System.out.println("==========================================>.......");
Date date = new Date();
System.out.println(date);
Instant instant = date.toInstant();
System.out.println(instant);
//current time
ZoneId zoneId = ZoneId.systemDefault();
LocalDateTime localDateTime2 = instant.atZone(zoneId).toLocalDateTime();
DateTimeFormatter dateTimeFormatter1 = DateTimeFormatter.ofPattern("MMM dd,yyyy HH:mm:ss");
String format = dateTimeFormatter1.format(localDateTime2);
System.out.println(localDateTime2);
System.out.println(format);
System.out.println("=================================>...........");
answer:
Mon Mar 28 16:25:49 CST 2022
2022-03-28T08:25:49.947Z
2022-03-28T16:25:49.947
Mar 28,2022 16:25:49