import java.time.LocalDateTime;
import java.time.ZoneId;
import java.time.ZonedDateTime;
import java.time.format.DateTimeFormatter;
public class UTCToBeijingTime {
public static void main(String[] args) {
// UTC时间字符串
String utcTimeStr = "2022-05-02T12:34:56Z";
// 创建UTC时间对象
LocalDateTime utcTime = LocalDateTime.parse(utcTimeStr, DateTimeFormatter.ISO_DATE_TIME);
// 将UTC时间转换为北京时间
ZoneId utcZoneId = ZoneId.of("UTC");
ZoneId beijingZoneId = ZoneId.of("Asia/Shanghai");
ZonedDateTime utcDateTime = ZonedDateTime.of(utcTime, utcZoneId);
ZonedDateTime beijingDateTime = utcDateTime.withZoneSameInstant(beijingZoneId);
// 输出北京时间字符串
String beijingTimeStr = beijingDateTime.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
System.out.println("北京时间:" + beijingTimeStr);
}
}
北京时间:2022-05-02 20:34:56
其中,表示获取UTC时区对象,表示获取北京时区对象,表示将UTC时间转换为北京时间。 最后,使用格式化输出北京时间字符串。ZoneId.of(“UTC”)ZoneId.of(“Asia/Shanghai”)utcDateTime.withZoneSameInstant(beijingZoneId)DateTimeFormatter
java 字符串转 LocalDateTime
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
public class StringToLocalDateTime {
public static void main(String[] args) {
String str = "2022-05-05T08:30:00";
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss");
LocalDateTime dateTime = LocalDateTime.parse(str, formatter);
System.out.println(dateTime);
}
}
上述代码中,我们使用 DateTimeFormatter 定义了日期时间的格式,并且使用 parse 方法将字符串解析为 LocalDateTime 对象。 最终输出结果为 。 需要注意的是,DateTimeFormatter 中的格式要和字符串的格式完全一致,否则会抛出异常。2022-05-05T08:30