Java <;输入类型=";日期“&燃气轮机;格式

Java <;输入类型=";日期“&燃气轮机;格式,java,html,spring,thymeleaf,Java,Html,Spring,Thymeleaf,我有一个字段“期望的开始日期”,它是一个文本字段。我在mongoDb中将日期存储为long,并将其显示为String,同时使用SimpleDateFormat类将其获取为String。我发现了,现在我正在努力让它工作。我正在尝试将日期选择为YYYY-MM-DD格式并以YYYY-MM-DD格式显示,但日历上没有任何更改 public class DateFormatterUtils { public static Long formatDate(String date) {

我有一个字段“期望的开始日期”,它是一个文本字段。我在mongoDb中将日期存储为
long
,并将其显示为
String
,同时使用
SimpleDateFormat
类将其获取为
String
。我发现了
,现在我正在努力让它工作。我正在尝试将日期选择为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);
    }

}
公共类DateFormatterUtils{
公共静态长格式日期(字符串日期){
如果(date!=null&&!date.equals(“”){
List datePatterns=new ArrayList();
添加(新的SimpleDataFormat(“dd-MM-yyyy”);
添加(新的SimpleDataFormat(“dd-MM-yyyy”);
datePatterns.add(新的SimpleDataFormat(“dd/MM/yyyy”);
datePatterns.add(新的SimpleDataFormat(“dd.MM.yyyy”);
添加(新的SimpleDataFormat(“dd,MM,yyyy”);
添加(新的SimpleDataFormat(“ddMMyyyy”);
添加(新的SimpleDataFormat(“dd:MM:yyyy”);
添加(新的SimpleDataFormat(“dd_-MM_-yyyy”);
datePatterns.add(新的SimpleDataFormat(“MM/dd/yyyy”);
datePatterns.add(新的SimpleDataFormat(“YYYY-MM-DD”);
添加(新的SimpleDataFormat(“yyyy-mm-dd”);
for(SimpleDataFormat模式:日期模式){
试一试{
返回模式.parse(date.getTime();
}捕获(解析异常){
}
}
}
返回null;
}
公共静态字符串readDate(长时间戳){
if(时间戳==null){
返回“”;
}
SimpleDataFormat格式化程序=新的SimpleDataFormat(“YYYY-MM-DD”);
日期=新日期(时间戳);
返回格式化程序。格式(日期);
}
}

这是我以前的方法,帮助我获取不同格式的输入,
readDate()
将其显示为dd/MM/yyyy格式。我检查了文档,日期是YYYY-MM-DD模式。当使用thymeleaf生成视图时,此日历的字段保持为mm/dd/yyyy,在HTML5输入类型中未选择日期日期的格式为yyyy-mm-dd(如文档所述,RFC3339)

不幸的是,这取决于浏览器如何处理这样的标签,以及他们是否能够处理它。在chrome中,我认为他们使用系统语言环境的格式。对于其他浏览器,我不确定。最安全的方法是使用某种日期选择器,您可以在其中选择日期格式,并确保它在所有浏览器/客户端上都能工作


我相信IE10不支持它,我只是在firefox ESR版本上测试了它,它也不工作,所以现在我会等待HTML5中的input type=“date”

,输入类型date的格式是yyyy mm dd(如文档所述,RFC3339)

不幸的是,这取决于浏览器如何处理这样的标签,以及他们是否能够处理它。在chrome中,我认为他们使用系统语言环境的格式。对于其他浏览器,我不确定。最安全的方法是使用某种日期选择器,您可以在其中选择日期格式,并确保它在所有浏览器/客户端上都能工作


我相信IE10不支持它,我只是在我的firefox ESR版本上进行了测试,它也不工作,所以现在我会等待输入type=“date”

我在这里没有看到问题。您能更具体地说明您想要什么吗。@AxelH我想在数据库中存储选定的日期,并在显示有关用户的信息时在日历上选择所需的日期。我不知道什么是正确的字符串日期模式,使其工作。在html文档中,它表示使用的模式是YYYY-MM-DD,因此我将日期显示为YYYY-MM-DD,并尝试将用户请求发布为YYYY-MM-DD检查如何编写。当然,我会重构我的代码并编辑问题,谢谢!我看这里没有问题。您能更具体地说明您想要什么吗。@AxelH我想在数据库中存储选定的日期,并在显示有关用户的信息时在日历上选择所需的日期。我不知道什么是正确的字符串日期模式,使其工作。在html文档中,它表示使用的模式是YYYY-MM-DD,因此我将日期显示为YYYY-MM-DD,并尝试将用户请求发布为YYYY-MM-DD检查如何编写。当然,我会重构我的代码并编辑问题,谢谢!如果我们在保加利亚某个地方见面,你可以给我买杯啤酒;)只有在我找到一种方法让你们在这里成为朋友的时候:)如果我们在保加利亚的某个地方见面,你们可以给我买杯啤酒;)除非我能在这里找到一种让你成为朋友的方法:)