Java 将XMLGregorianCalendar转换为日期,即;年月日hh:MM:ss AM“;
我有一个XMLGregoriaCalendar格式的日期,如“2013-05-16T09:54:13”,我必须将其转换为时间戳“MM/DD/YYYY hh:MM:ss AM”,以便使用java插入oracle数据库表Java 将XMLGregorianCalendar转换为日期,即;年月日hh:MM:ss AM“;,java,date,oracle11g,Java,Date,Oracle11g,我有一个XMLGregoriaCalendar格式的日期,如“2013-05-16T09:54:13”,我必须将其转换为时间戳“MM/DD/YYYY hh:MM:ss AM”,以便使用java插入oracle数据库表 如何在Java中执行此操作?您可以执行此操作以返回日期: calendar.toGregorianCalendar().getTime() 我从中找到了那个代码。从那里,您可以使用a将其转换为所需格式的字符串 但是,如果您使用JDBC将日期保存在数据库中,您可能可以通过以下方式直
如何在Java中执行此操作?您可以执行此操作以返回日期:
calendar.toGregorianCalendar().getTime()
我从中找到了那个代码。从那里,您可以使用a将其转换为所需格式的字符串
但是,如果您使用JDBC将日期保存在数据库中,您可能可以通过以下方式直接传入日期
:
在Java中使用DateFormat类。这应该很有帮助:如果您想在数据库中插入日期,我会首先按照Daniel的建议执行:
XMLGregorianCalendar xgc=<assume this is initialized>;
Date timestamp=xgc.toGregorianCalendar().getTime();
以下是更明确的答案: 从XMLGregorianCalendar实例获取日期的实例:
Date date = xmlCalendar.toGregorianCalendar().getTime();
我从你的电脑里找到了那个密码
使用格式“MM/dd/yyyyy hh:MM:ss a”格式化该日期实例,您将获得MM/dd/yyyy hh:MM:ss AM格式
DateFormat formatter = new SimpleDateFormat("MM/dd/yyyy hh:mm:ss a");
String formattedDate = formatter.format(date)
从
对于插入数据库,您可以按照Daniel的建议执行您可以使用以下两行代码将XMLGregorianCalendar转换为java.util.Date对象:-
Date date = xmlDate.toGregorianCalendar().getTime();
System.out.println("java.util.date :- " + date);
要转换为java.slq.Date对象,请使用以下代码:-
long time = xmlDate.toGregorianCalendar().getTime().getTime();
java.sql.Date sqlDate = new java.sql.Date(time);
您可以看到完整的示例请使用下面的函数-只需传递所需的XMLGregoriaCalendar实例和日期格式(格式示例:“DD-MMMM-yyyy”->2017年1月1日) tl;博士 java.time 现代方法使用java.time类取代了麻烦的旧类
Date
、Calendar
和gregorianalendar
将遗留类转换为java.time
GregorianCalendar gc = myXGC.toGregorianCalendar() ;
ZonedDateTime zdt = gc.toZonedDateTime();
将日期时间值作为日期时间对象而不是字符串传递到数据库
如果您的JDBC驱动程序符合JDBC4.2及更高版本,那么您可以直接处理java.time类型
myPreparedStatement.setObject( … , zdt ) ;
如果驱动程序尚未兼容,请简要转换为java.sql类型
myPreparedStatement.setTimestamp( … , java.sql.Timestamp.from ( zdt.toInstant() ) ) ;
这将返回java.util.Date:
java.util.Date tempDate = issueDate.toGregorianCalendar().getTime();
在插入数据库之前,您不会格式化时间戳的副本。您使用java.util.Date类。我看不到getTime()方法。您所说的是与之不同的包吗?@ilinca getTime()方法属于GregorianCalendar类。您需要使用.toGregorianCalendar()方法将XMLGregorianCalendar解析为GregorianCalendar,如上所示。
GregorianCalendar gc = myXGC.toGregorianCalendar() ;
ZonedDateTime zdt = gc.toZonedDateTime();
myPreparedStatement.setObject( … , zdt ) ;
myPreparedStatement.setTimestamp( … , java.sql.Timestamp.from ( zdt.toInstant() ) ) ;
java.util.Date tempDate = issueDate.toGregorianCalendar().getTime();