У меня есть дата в формате XMLGregorianCalendar как-то "2013-05-16T09:54:13" и что мне нужно преобразовать в метку времени и"ММ/ДД/гггг чч:мм:СС am" и для вставки в Oracle таблице базы данных с помощью Java.
как я могу сделать это в Java?
Вы можете сделать это, чтобы возвратить "дата":
calendar.toGregorianCalendar().getTime()
Я нашел этот код из учебник. Оттуда, вы можете использовать класса simpledateformat, чтобы преобразовать его в строку в формате, который вы хотите.
Но, если вы're, используя JDBC, чтобы сохранить дату в базе данных, вы, вероятно, может пройти в "дата" непосредственно этот метод:
preparedStatement.setDate(colNum, myDate);
Вот более четкий ответ:
Получить экземпляр Дата от экземпляра XMLGregorianCalendar:
Date date = xmlCalendar.toGregorianCalendar().getTime();
Я нашел этот код из конвертировать XMLGregorianCalendar на сегодняшний день в Java
Формат этой даты экземпляр в формате "с ДД/ММ/гггг чч:мм:СС а", вы получите в ММ/ДД/гггг чч:мм:СС формат
DateFormat formatter = new SimpleDateFormat("MM/dd/yyyy hh:mm:ss a");
String formattedDate = formatter.format(date)
Из преобразовать дату в строку в Java
Для установки базы данных вы могли бы сделать то, что Даниил предложил
Если вы хотите вставить дату в базе данных, я бы сначала делать то, что Дэниел предложил:
XMLGregorianCalendar xgc=<assume this is initialized>;
Date timestamp=xgc.toGregorianCalendar().getTime();
и позже вставить его через объект PreparedStatement как timestamp в миллисекундах (время, эпоха). Таким образом, вы выиграли'т потерять точность.
preparedStatement.setTimestamp(colNum,new Timestamp(timestamp.getTime()));
myPreparedStatement.setObject(
… ,
myXGC.toGregorianCalendar()
.toZonedDateTime()
) ;
Современный подход используют Java.классы время вытеснила дата хлопотно старые классы`,
календарь, и
gregoriancalendar значение`.
Преобразовать наследие классов в Java.время.
GregorianCalendar gc = myXGC.toGregorianCalendar() ;
ZonedDateTime zdt = gc.toZonedDateTime();
Пропуск значений даты-времени в базу данных в качестве даты-времени объектов, а не строк.
Если драйвер JDBC соответствует JDBC 4.2 и позже, вы можете иметь дело непосредственно с Java.типы времени.
myPreparedStatement.setObject( … , zdt ) ;
Если ваш драйвер не совместимый, преобразовать кратко к Java.тип SQL.
myPreparedStatement.setTimestamp( … , java.sql.Timestamp.from ( zdt.toInstant() ) ) ;
Использовать dateformat класс в Java. Это должно быть полезно: http://docs.oracle.com/javase/6/docs/api/java/text/DateFormat.html
Вы можете конвертировать XMLGregorianCalendar на Java.утиль.Объект Date с помощью этих двух строк кода :-
Date date = xmlDate.toGregorianCalendar().getTime();
System.out.println("java.util.date :- " + date);
Для преобразования в Java.сайт SLQ.Дата объект используйте этот код :-
long time = xmlDate.toGregorianCalendar().getTime().getTime();
java.sql.Date sqlDate = new java.sql.Date(time);
Вы можете увидеть полный пример здесь
Пожалуйста, используйте функцию ниже - просто передать экземпляр XMLGregorianCalendar и дата формат (например, формат: "по весне ДД мммм гггг&; - > 01 января 2017 года)
public String parseDate(String format,XMLGregorianCalendar XMLdate){
Date date = XMLdate.toGregorianCalendar().getTime();
DateFormat formatter = new SimpleDateFormat(format);
String formattedDate = formatter.format(date);
return formattedDate;
}