я получил сообщение об ошибке - PullRequest
6 голосов
/ 13 апреля 2011

Я хочу формат даты как дд-ммм-гггг. Мой код:

String v_date_str="Sun Mar 06 11:28:16 IST 2011";
        DateFormat formatter;
        formatter = new SimpleDateFormat("dd-MMM-yyyy");
        Date date_temp=null;
        try {
            date_temp = (Date) formatter.parse(v_date_str);
        } catch (ParseException ex) {
            Logger.getLogger(Attendance_Calculation.class.getName()).log(Level.SEVERE, null, ex);
        }
        System.out.println("output: "+date_temp);

Но я получил ошибку как:

    The log message is null.
java.text.ParseException: Unparseable date: "Sun Mar 06 11:28:16 IST 2011"
        at java.text.DateFormat.parse(DateFormat.java:337)
        at org.fes.pis.jsf.main.Attendance_Calculation.btn_show_pending_appl_action(Attendance_Calculation.java:415)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at com.sun.el.parser.AstValue.invoke(AstValue.java:187)
        at com.sun.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:297)
        at com.sun.facelets.el.TagMethodExpression.invoke(TagMethodExpression.java:68)
        at javax.faces.event.MethodExpressionActionListener.processAction(MethodExpressionActionListener.java:99)
        at javax.faces.event.ActionEvent.processListener(ActionEvent.java:88)
        at javax.faces.component.UIComponentBase.broadcast(UIComponentBase.java:771)
        at javax.faces.component.UICommand.broadcast(UICommand.java:372)
        at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:475)
        at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:756)
        at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:82)
        at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:100)
        at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118)
        at com.sun.faces.extensions.avatar.lifecycle.PartialTraversalLifecycle.execute(PartialTraversalLifecycle.java:94)
        at javax.faces.webapp.FacesServlet.service(FacesServlet.java:265)
        at org.apache.catalina.core.ApplicationFilterChain.servletService(ApplicationFilterChain.java:427)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:315)
        at org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:287)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:218)
        at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:648)
        at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:593)
        at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:94)
        at com.sun.enterprise.web.PESessionLockingStandardPipeline.invoke(PESessionLockingStandardPipeline.java:98)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:222)
        at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:648)
        at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:593)
        at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:587)
        at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1093)
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:166)
        at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:648)
        at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:593)
        at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:587)
        at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1093)
        at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:291)
        at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.invokeAdapter(DefaultProcessorTask.java:666)
        at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.doProcess(DefaultProcessorTask.java:597)
        at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.process(DefaultProcessorTask.java:872)
        at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.executeProcessorTask(DefaultReadTask.java:341)
        at com.sun.enterprise.web.connector.grizzly.ssl.SSLReadTask.process(SSLReadTask.java:444)
        at com.sun.enterprise.web.connector.grizzly.ssl.SSLReadTask.doTask(SSLReadTask.java:230)
        at com.sun.enterprise.web.connector.grizzly.TaskBase.run(TaskBase.java:264)
        at com.sun.enterprise.web.connector.grizzly.ssl.SSLWorkerThread.run(SSLWorkerThread.java:106)

Спасибо за любую помощь ....

Но мне нужна дата в формате даты как dd-MMM-гггг.

Ответы [ 6 ]

7 голосов
/ 13 апреля 2011

Используйте это, это будет работать:

SimpleDateFormat formatter=new SimpleDateFormat("EEE MMM d HH:mm:ss zzz yyyy");

Вы не можете проанализировать дату с SimpleDateFormat , который настроен в другом формате

5 голосов
/ 13 апреля 2011

Вы должны изменить свой код на:

String v_date_str="Sun Mar 06 11:28:16 IST 2011";
DateFormat formatter;
formatter = new SimpleDateFormat("EEE MMM d HH:mm:ss zzz yyyy");
Date date_temp=null;
try {
        date_temp = (Date) formatter.parse(v_date_str);
    } catch (ParseException ex) {
  Logger.getLogger(Attendance_Calculation.class.getName()).log(Level.SEVERE, null, ex);
}
System.out.println("output: "+date_temp);

Вы используете неправильный формат даты для анализа даты.

3 голосов
/ 02 марта 2013

Попробуйте следующий код:

import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Locale;
import java.util.logging.Level;
import java.util.logging.Logger;


public class SimpleDateFormat02 {

public static void main(String[] args) throws ParseException {
    String v_date_str="Sun Mar 06 11:28:16 IST 2011";
    Date v_date = new SimpleDateFormat("EEE MMM dd HH:mm:ss zzz yyyy", Locale.ENGLISH).parse(v_date_str);
    DateFormat formatter = null;

    formatter = new SimpleDateFormat("dd-MMM-yyyy");
    Date date_temp=null;
    try {
        date_temp = (Date) formatter.parse("31-Dec-2012"); // String of same format a formatter

    } catch (ParseException ex) {
        //Logger.getLogger(Attendance_Calculation.class.getName()).log(Level.SEVERE, null, ex);
        ex.printStackTrace();
    }
    System.out.println("output: "+ formatter.format(v_date));
}
}

Этот код дает желаемый результат!

3 голосов
/ 13 апреля 2011

В этом коде вы говорите Java, чтобы проанализировать дату , используя заданный формат , а затем распечатать ее.Поэтому используемая строка формата должна соответствовать формату строки введенной даты.Поскольку это не так, неудивительно, что это не работает.

Для преобразования дат между двумя различными форматами вы, вероятно, захотите использовать два различных объектов DateFormat, один для разбора иодин для печати. ​​

0 голосов
/ 06 сентября 2017

Это очень хорошо работает со мной

SimpleDateFormat format1 = новый SimpleDateFormat ("dd-MM-гггг");

String formatted = format1.format (objectValue);
ДатаjavaDate = format1.parse (отформатированный);

0 голосов
/ 25 апреля 2014

я получил решение как,

String v_date_str = "Sun Mar 06 11:28:16 IST 2011";
    DateFormat formatter = new SimpleDateFormat("EEE MMM d HH:mm:ss zzz yyyy");
    String d_temp;
    Date dTemp;
    try {
        dTemp = formatter.parse(v_date_str);
        formatter=new SimpleDateFormat("dd-MMM-yyyy");
        d_temp=formatter.format(dTemp);
        System.out.println("val : " + d_temp);
    } catch (ParseException ex) {
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...