【问题标题】:Why is date displayed differently on different PC?为什么不同电脑上的日期显示不一样?
【发布时间】:2020-04-28 03:18:23
【问题描述】:

我对日期类型的文件有一个奇怪的问题。这是一个使用spring和JPA开发的应用程序。我有一个非常简单的日期类型输入字段

<div class="form-group col-xs-10 col-sm-4 col-md-4 col-lg-3">
        <label>Start Date</label> 
        <input type="date" class="form-control needs-validation" name="startDate"
        value="${selected}">
</div>

这里没什么特别的。 问题出现在我在不同的电脑上尝试这个应用程序(相同的浏览器、相同的浏览器版本、相同的操作系统)。

在一台电脑上,日期的格式是:

如果我在其他电脑上尝试相同的页面,输出是:

我不明白为什么我使用相同版本的代码/浏览器/操作系统有不同的日期格式。最后,插入的日期被正确接收,但这很烦人,而且将日期放在日期中间不是一种非常用户友好的格式。

有人可以给我一些关于这个问题的提示吗?

谢谢

【问题讨论】:

  • 第二个在美国是标准的,位置/时区设置会不会影响它?
  • 嗨@Nexevis。不,它不是基于 Windows 时区的。例如,对于第二张图片,格式为 dd/mm/yyyy。
  • 根据 input type="date" 规范,标准格式为 yyyy-mm-dd,但显示也取决于浏览器的区域设置。您能否检查两个浏览器中的浏览器区域设置?此处的规格参考 - tools.ietf.org/html/rfc3339
  • @SB 唯一可以从浏览器引用时区的设置是语言,并且两者都设置为英语

标签: java html date jpa


【解决方案1】:

我猜你的浏览器有不同的语言设置。检查每个浏览器的设置并将它们设置为相同的语言。

【讨论】:

  • 嗨。好主意,但这不是问题。我的两个浏览器都有英语
  • 有不同类型的“英语”。英语英国、美国、澳大利亚……?我认为他们也可能有不同的日期格式。
  • 是的,我也在考虑这个问题,我在两个浏览器上都只添加了英文,没有任何“特定”英文
【解决方案2】:

浏览器行为变化

date 类型的 HTML 小部件 input 显示它认为合适的日期值,其行为因 Web 浏览器实现而异。引用Mozilla doc

输入 UI 通常因浏览器而异;有关详细信息,请参阅Browser compatibility。在不受支持的浏览器中,控件会优雅地降级为&lt;input type="text"&gt;

我希望浏览器中的行为会因用户对日期时间、当前默认时区和当前默认区域设置的偏好设置而有所不同。

所以这与 Java 或您的数据库无关

如果您想要更多的控制,您将需要使用其他 HTML 小部件。

在Java 方面,我建议您了解java.time 类。它们已被多次覆盖,因此请搜索以了解更多信息。见Oracle Tutorial

如果您想完全用 Java 构建您的 Web 应用程序,同时自动生成所有 HTML、CSS、JavaScript、AJAX、DOM 等,请了解Vaadin

【讨论】:

  • 是的,从我在文档中读到的内容来看,这是预期的行为。
猜你喜欢
  • 1970-01-01
  • 2015-12-03
  • 1970-01-01
  • 2019-01-22
  • 1970-01-01
  • 1970-01-01
  • 2021-12-24
  • 1970-01-01
  • 2011-01-02
相关资源
最近更新 更多