new date的时间少8个小时java转换代码
时间: 2024-05-02 18:18:02 浏览: 19
你可以使用Java 8中的DateTime API来转换时间,以下是一个示例代码:
```java
import java.time.LocalDateTime;
import java.time.ZoneId;
import java.time.ZonedDateTime;
import java.time.format.DateTimeFormatter;
public class DateConverter {
public static void main(String[] args) {
String dateStr = "2021-11-24 12:00:00";
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
LocalDateTime localDateTime = LocalDateTime.parse(dateStr, formatter);
ZoneId sourceTimeZone = ZoneId.of("Asia/Shanghai");
ZoneId targetTimeZone = ZoneId.of("UTC-8");
ZonedDateTime sourceZonedDateTime = ZonedDateTime.of(localDateTime, sourceTimeZone);
ZonedDateTime targetZonedDateTime = sourceZonedDateTime.withZoneSameInstant(targetTimeZone);
String targetDateStr = targetZonedDateTime.format(formatter);
System.out.println("Source date: " + dateStr);
System.out.println("Target date: " + targetDateStr);
}
}
```
在此示例中,我们将字符串日期解析为LocalDateTime对象,然后使用源时区和目标时区创建ZonedDateTime对象。然后,我们使用withZoneSameInstant方法将源时区的ZonedDateTime对象转换为目标时区的ZonedDateTime对象。最后,我们将目标日期格式化为字符串并将其输出到控制台。