gpt4 book ai didi

java - java和angularjs之间的错误日期值

转载 作者:行者123 更新时间:2023-12-01 09:34:24 26 4
gpt4 key购买 nike

我创建了一个休息服务来返回日期。

我在后端使用 Java,在前端使用 AngularJS。

我的java代码是这样的:

   SimpleDateFormat myFormat= new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date myDate = myFormat.parse("1900-01-01 12:00:00");
return myDate;

当我从服务中获取此值时,我使用以下代码将其显示在前端:

 <div>
<h4>{{myDate | date:'yyyy-MM-dd HH:mm:ss'}}</h4>
</div>

页面显示“1899-12-31 23:56:16”。

我再次尝试,但使用当前日期,它在系统中正常显示。

最佳答案

我已经测试了从 1900 年到 2020 年的所有 1 月 1 日日期,事实上,Java 和 javascript 显然在某些时间间隔内返回不同的毫秒值(事实上,只有 1912 年至 1912 年之间的日期) 1940 年重合)。

我已经根据经验测试了这种随机差异是由于在 Java 中解析日期字符串时缺少特定时区造成的(在 javascript 部分,使用的引用隐式是 UTC,我猜)。此外,在解析日期时指定时区始终是一个好习惯。

因此,我建议您在 java 程序中添加 UTC(或 GMT+0000)的时区说明符:

    SimpleDateFormat myFormat=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss Z");
Date myDate=myFormat.parse("1900-01-01 12:00:00 +0000");

我坚持认为,根据我的猜测,AngularJS scriptlet 引用的是 UTC,无论客户端实际位于哪个时区。

关于java - java和angularjs之间的错误日期值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39129400/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com