Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/jsf/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jsf 我在页面中有日历,但bean中的属性是字符串,我得到了错误_Jsf_Date_Calendar_Richfaces - Fatal编程技术网

Jsf 我在页面中有日历,但bean中的属性是字符串,我得到了错误

Jsf 我在页面中有日历,但bean中的属性是字符串,我得到了错误,jsf,date,calendar,richfaces,Jsf,Date,Calendar,Richfaces,我使用的是rich calendar,在网页中我应该有calendar,但是bean属性是一个字符串,我不能将其更改为日期,但是在保存表单时我总是有 java.text.ParseException: Unparseable date: "Tue Dec 09 00:00:00 GMT+04:00 2059" java.text.DateFormat.parse(DateFormat.java:357) javax.faces.convert.DateTimeConverter.getAsObj

我使用的是rich calendar,在网页中我应该有calendar,但是bean属性是一个字符串,我不能将其更改为日期,但是在保存表单时我总是有

java.text.ParseException: Unparseable date: "Tue Dec 09 00:00:00 GMT+04:00 2059"
java.text.DateFormat.parse(DateFormat.java:357)
javax.faces.convert.DateTimeConverter.getAsObject(DateTimeConverter.java:398)
org.richfaces.component.UICalendar.getAsDate(UICalendar.java:399)
org.richfaces.renderkit.CalendarRendererBase.getSelectedDate(CalendarRendererBase.java:658)
org.richfaces.renderkit.html.CalendarRenderer.doEncodeEnd(CalendarRenderer.java:451)
org.richfaces.renderkit.html.CalendarRenderer.doEncodeEnd(CalendarRenderer.java:516)
org.ajax4jsf.renderkit.RendererBase.encodeEnd(RendererBase.java:134)
javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:861)
com.sun.faces.renderkit.html_basic.HtmlBasicRenderer.encodeRecursive(HtmlBasicRenderer.java:242)
我试了很多,但没有任何帮助

有什么想法吗

这是一个转换器

@Override
    public Object getAsObject(FacesContext context, UIComponent component, String value) throws ConverterException {
        String pattern = "yyyy-MM-dd, HH:mm:ss aaa";
        SimpleDateFormat sdf = new SimpleDateFormat(pattern);
        Date nDate = null;
        if (value == null || value.trim().length() == 0) {
            return nDate;
        }
        try {
            nDate = sdf.parse(value);
        } catch (ParseException ex) {
        }
        return nDate;

    }

    @Override
    public String getAsString(FacesContext facesContext, UIComponent uIComponent, Object value) {
        String date = "";
        try{
        if (value == null) {
            return "";
        }
        String pattern = "yyyy-MM-dd, HH:mm:ss aaa";
        SimpleDateFormat sdf = new SimpleDateFormat(pattern);
        Date dateValue = new SimpleDateFormat("yyyy-MM-dd, HH:mm:ss aaa", Locale.ENGLISH).parse(value.toString());        
        date = sdf.format((Date) dateValue);
        }
        catch(Exception e){          
            e.printStackTrace();
        }
        return date;
    }

 but it does not work

尝试此格式“EEE-MMM-dd-HH:mm:ss z-yyyy”进行解析

使用此格式将字符串转换为日期

    String date = "15-09-2011:23:30:45";//your date
    DateFormat formatter = new SimpleDateFormat("dd-MM-yyyy:HH:mm:SS");
    Date convertedDate = (Date) formatter.parse(date);

使用SimpleDataFormat格式化数据并将日期转换为我更新的转换器代码,它没有帮助,或者有错误我的bean属性是字符串,我无法更改它,我将它保存为字符串,但使用日历,在保存日历时崩溃:(值是否在“yyyy-MM-dd,HH:MM:ss-aaa”中)格式化?没有人看到模型首先被破坏了吗?OP使用的是字符串而不是日期,这是错误的保存日期的模型。虽然这在一个带有
main()
方法的普通Java类中可以自行工作,但这根本不能解决OP的具体问题。请仔细查看stacktrace。