📅  最后修改于: 2023-12-03 15:32:44.005000             🧑  作者: Mango
在Java中,LocalDateTime
和 XMLGregorianCalendar
之间的互相转换,可能是你需要经常处理的一种场景。本文将介绍如何在Java中使用 LocalDateTime
和 XMLGregorianCalendar
来互相转换。
将 LocalDateTime
转换为 XMLGregorianCalendar
,可以使用 DatatypeFactory
类的 newXMLGregorianCalendar
方法:
import javax.xml.datatype.DatatypeFactory;
import javax.xml.datatype.XMLGregorianCalendar;
import java.time.LocalDateTime;
public class LocalDateTimeToXMLGregorianCalendar {
public static void main(String[] args) {
LocalDateTime localDateTime = LocalDateTime.now();
try {
DatatypeFactory datatypeFactory = DatatypeFactory.newInstance();
XMLGregorianCalendar xmlGregorianCalendar = datatypeFactory.newXMLGregorianCalendar(localDateTime.toString());
System.out.println("LocalDateTime : " + localDateTime);
System.out.println("XMLGregorianCalendar : " + xmlGregorianCalendar);
} catch (Exception e) {
e.printStackTrace();
}
}
}
运行以上程序,可以得到以下输出:
LocalDateTime : 2021-06-25T15:21:23.967
XMLGregorianCalendar : 2021-06-25T15:21:23.967
将 XMLGregorianCalendar
转换为 LocalDateTime
,可以使用 toLocalDateTime()
方法,将 XMLGregorianCalendar
转换为 GregorianCalendar
,然后再通过 toZonedDateTime()
方法转换为 ZonedDateTime
,最后再使用 toLocalDateTime()
方法转换为 LocalDateTime
:
import javax.xml.datatype.DatatypeFactory;
import javax.xml.datatype.XMLGregorianCalendar;
import java.time.LocalDateTime;
import java.time.ZoneId;
import java.util.GregorianCalendar;
public class XMLGregorianCalendarToLocalDateTime {
public static void main(String[] args) {
XMLGregorianCalendar xmlGregorianCalendar = null;
try {
DatatypeFactory datatypeFactory = DatatypeFactory.newInstance();
xmlGregorianCalendar = datatypeFactory.newXMLGregorianCalendar(LocalDateTime.now().toString());
GregorianCalendar gregorianCalendar = xmlGregorianCalendar.toGregorianCalendar();
LocalDateTime localDateTime = gregorianCalendar.toZonedDateTime().withZoneSameInstant(ZoneId.systemDefault()).toLocalDateTime();
System.out.println("XMLGregorianCalendar : " + xmlGregorianCalendar);
System.out.println("LocalDateTime : " + localDateTime);
} catch (Exception e) {
e.printStackTrace();
}
}
}
运行以上程序,可以得到以下输出:
XMLGregorianCalendar : 2021-06-25T15:21:23.967
LocalDateTime : 2021-06-25T15:21:23.967
本文介绍了如何在Java中使用 LocalDateTime
和 XMLGregorianCalendar
互相转换。希望对你有所帮助。