簡體   English   中英

如何從XmlGregorianCalendar獲取日期和時間

[英]How to get the date and the time from XmlGregorianCalendar

我有這個日期的代碼:

public static XMLGregorianCalendar retrieveXMLGregorianCalendar(Date source)  {
            XMLGregorianCalendar dest = null;
            Calendar calendar = Calendar.getInstance();
            if (source !=null) {
                calendar.setTime(source);
                DatatypeFactory datatypeFactory;
                try {
                    datatypeFactory = DatatypeFactory.newInstance();
                    dest =  datatypeFactory.newXMLGregorianCalendarDate(calendar.get(Calendar.YEAR), calendar
                            .get(Calendar.MONTH) + 1, calendar.get(Calendar.DAY_OF_MONTH), DatatypeConstants.FIELD_UNDEFINED);
                    dest.setHour(calendar.get(Calendar.HOUR));
                    dest.setMinute(calendar.get(Calendar.MINUTE));
                    dest.setSecond(calendar.get(Calendar.SECOND));
                } catch (DatatypeConfigurationException e) {
                    e.printStackTrace();
                    throw new SoapFaultException("Date Trasfomation Exception");
                }
            }
            return dest;
        }

這個小時的代碼:

public static XMLGregorianCalendar retrieveXMLGregorianCalendarTime(Date source)  {
        XMLGregorianCalendar dest = null;
        Calendar calendar = Calendar.getInstance();
        if (source !=null) {
          calendar.setTime(source);
          DatatypeFactory datatypeFactory;
          try {
            datatypeFactory = DatatypeFactory.newInstance();
            dest =  datatypeFactory.newXMLGregorianCalendarTime(calendar.get(Calendar.HOUR_OF_DAY), calendar
                .get(Calendar.MINUTE) + 1, calendar.get(Calendar.SECOND), DatatypeConstants.FIELD_UNDEFINED);
            dest.setYear(calendar.get(Calendar.YEAR));
            dest.setMonth(calendar.get(Calendar.MONTH) + 1);
            dest.setDay(calendar.get(Calendar.DAY_OF_MONTH));
          } catch (DatatypeConfigurationException e) {
            e.printStackTrace();
            return null;
          }
        }
        return dest;
      }

我只想捕獲這樣的日期(dd / MM / YYYY)和類似的小時(hh:mm:ss)。 但是我不知道該怎么抓。 我已經嘗試了好幾次,試圖不趕上日期的小時或分鍾,但是我的日食表示沒有設置分鍾或小時。

格式化日期(字符串):

SimpleDateFormat sdfDate = new SimpleDateFormat("dd.MM.yyyy");

SimpleDateFormat sdfTime = new SimpleDateFormat("HH:mm:ss");

SimpleDateFormat sdfDateTime = new SimpleDateFormat("dd.MM.yyyy HH:mm:ss");

System.out.println(sdfDate.format(source));

System.out.println(sdfTime.format(source));

System.out.println(sdfDateTime.format(source));

該方法返回xmlGregorianCalendar

將其轉換為GregorianCalendar

最后使用getTime()GregorianCalendar獲取時間,並使用dd/MM/YYYY HH:mm:ss SimpleDateFormat其格式化

SimpleDateFormat dateFormat = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss", Locale.ENGLISH);
XMLGregorianCalendar xmlGregorianCalendar = retrieveXMLGregorianCalendar(new Date());
Date date = xmlGregorianCalendar.toGregorianCalendar().getTime();
System.out.println(dateFormat.format(date));

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM