【问题标题】:<input type="date"> format<input type="date"> 格式
【发布时间】:2018-10-12 06:00:47
【问题描述】:

我有一个“期望的开始日期”字段,它是一个文本字段。我在 mongoDb 中将日期存储为 long 并将其显示为 String,也将其作为 StringSimpleDateFormat 类。我发现了&lt;input type="date"&gt;,我现在正努力让它工作。我正在尝试将日期选择为 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 模式。当使用 thymeleaf 生成视图时,此日历的字段保持为 mm/dd/yyyy 且未选择日期

【问题讨论】:

  • 我在这里没有看到问题。你能更具体地说明你想要什么吗?
  • @AxelH 我想存储在数据库中选择的日期,当我显示有关用户的信息时,希望在日历上选择日期。我无法弄清楚使它起作用的正确字符串日期模式是什么。在 html 文档中,它说使用的模式是 YYYY-MM-DD 所以我将日期显示为 YYYY-MM-DD 并尝试将用户请求发布为 YYYY-MM-DD
  • 查看如何写minimal reproducible example。并 edit 相应地提出您的问题。
  • @AxelH 当然,我会重构我的代码并编辑问题,谢谢!

标签: java html spring thymeleaf


【解决方案1】:

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

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

我相信 IE10 不支持它,我刚刚在我的 firefox ESR 版本上进行了测试,它也无法正常工作,所以现在我会等待输入 type="date"

【讨论】:

  • 如果我们在保加利亚某个地方见面,你可以给我买杯啤酒;)
  • 只有当我在这里找到给你友谊的方法时:)
猜你喜欢
  • 1970-01-01
  • 2013-05-22
  • 2016-01-13
  • 2017-04-07
  • 2023-02-02
  • 1970-01-01
  • 2013-05-29
  • 2016-02-18
  • 2016-11-25
相关资源
最近更新 更多