<input type =“date”/> format

时间:2018-05-02 07:36:37

标签: java html spring thymeleaf

我有一个字段“所需的开始日期”,这是一个文本字段。我将日期存储为mongoDb中的long并将其显示为String,同时将其作为String级别SimpleDateFormat。我发现了<input type="date">,我正在努力让它现在发挥作用。我试图将日期选为YYYY-MM-DD格式,并以YYYY-MM-DD格式显示,但日历上没有任何变化。

public class DateFormatterUtils {

    public static Long formatDate(String date) {
        if (date != null && !date.equals("")) {
            List<SimpleDateFormat> datePatterns = new ArrayList<SimpleDateFormat>();
            datePatterns.add(new SimpleDateFormat("dd MM yyyy"));
            datePatterns.add(new SimpleDateFormat("dd-MM-yyyy"));
            datePatterns.add(new SimpleDateFormat("dd/MM/yyyy"));
            datePatterns.add(new SimpleDateFormat("dd.MM.yyyy"));
            datePatterns.add(new SimpleDateFormat("dd,MM,yyyy"));
            datePatterns.add(new SimpleDateFormat("ddMMyyyy"));
            datePatterns.add(new SimpleDateFormat("dd:MM:yyyy"));
            datePatterns.add(new SimpleDateFormat("dd_MM_yyyy"));
            datePatterns.add(new SimpleDateFormat("MM/dd/yyyy"));
            datePatterns.add(new SimpleDateFormat("YYYY-MM-DD"));
            datePatterns.add(new SimpleDateFormat("yyyy-mm-dd"));

            for (SimpleDateFormat pattern : datePatterns) {
                try {
                    return pattern.parse(date).getTime();
                } catch (ParseException e) {

                }
            }
        }
        return null;

    }

    public static String readDate(Long timeStamp) {
        if (timeStamp == null) {
            return "";
        }
        SimpleDateFormat formatter = new SimpleDateFormat("YYYY-MM-DD");
        Date date = new Date(timeStamp);
        return formatter.format(date);
    }

}

这是我的旧方法,帮助我以不同格式获取输入,readDate()将其显示为dd / MM / yyyy格式。我签了文档,日期是YYYY-MM-DD模式。当使用百里香生成视图时,此日历的字段保持为mm / dd / yyyy且未选择日期

1 个答案:

答案 0 :(得分:2)

在HTML5输入中,日期格式为yyyy-mm-dd(RFC3339,文档说https://www.w3.org/TR/2011/WD-html-markup-20110405/input.date.html

不幸的是,它取决于浏览器如何处理这样的标签,如果他们处理它。在chrome中我认为他们使用系统区域设置的格式。对于其他浏览器,我不确定。最安全的方法是使用某种日期选择器,您可以选择日期格式并确保它适用于所有浏览器/客户端。

我相信它在IE10中不受支持,我只是在我的firefox ESR版本上测试过它现在也没有用,所以现在我要等输入类型=&#34;日期&#34;