java - Angular向java发送错误的日期格式并且无法在表中创建对象

标签 java sql angular

我有一个优惠券系统,其中java中的优惠券bean具有date.sql startDate和endDate。 在 Angular 中,优惠券模型的构造函数中有 startDate:Date 和 endDate:Date 。 当我在网站上显示它时,它显示为 2019 年 7 月 30 日(以我的本地语言),因此当我单击购买按钮时,我在控制台中收到错误消息: 无法反序列化 java.sql.Date 类型的值(来自字符串“ֳ—ֳֵ—ֲֳ—ֲ¥ 13, 1991”):不是有效的表示形式(错误:无法解析日期值 'ֳ— ֵ⁄ֳ—ֲֳ—ֲ¥ 13, 1991': 无法解析日期“ֳ—ֳֵ—ֲֳ—ֲ¥ 13, 1991”:与任何标准形式不兼容(“yyyy-MM-dd'T'HH” :mm:ss.SSSZ", "yyyy-MM-dd'T'HH:mm:ss.SSS", "EEE, dd MMM yyyy HH:mm:ss zzz", "yyyy-MM-dd")) 在[来源:(org.glassfish.jersey.message.internal.ReaderInterceptorExecutor$UnCloseableInputStream);行:1,列:73](通过引用链:beans.Coupon[“startDate”])

我尝试用管道显示它- {{value |日期:'yyyy-MM-dd'}} 但这样一来,我什至无法再在网站上显示它了。


 </tr>
    <tr *ngFor="let c of coupons">

      <td>{{c.startDate}}</td>
      <td>{{c.endDate}}</td>
      <td>{{c.amount}}</td>
     coupon model:

    public constructor(
        public id?:number,public title?:string,public message?:string,public image?:string,public startDate?:Date,
        public endDate?:Date,public amount?:number,public price?:number,public type?:Coupontypes){}

}

Java
private Date startDate, endDate;

我想我无法购买优惠券,因为它使用字符串值创建 JSON,而不是像服务器期望接收的那样 yyyy-MM-dd。

最佳答案

如果我理解正确的话,错误来自您的 Java 程序。您正在以不符合预期的格式发送日期值。更改在 html 中查看日期的方式不会更改实际值。如果您使用 Angular 6+,您可以执行以下操作将日期转换为所需的格式:

    import { formatDate } from '@angular/common';

    class MyService {

      constructor(@Inject(LOCALE_ID) private locale: string) {}

      transformDate(date) {
        return formatDate(date, 'yyyy-MM-dd', this.locale);
      }
    }

关于java - Angular向java发送错误的日期格式并且无法在表中创建对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57274730/

相关文章:

java - GWT g :Anchor doesn't show up as a link

java - Java 可以通过用户输入进行 self 修改吗?

sql - MySQL GROUP BY 数量

java - 尽管语句中存在数据,Blob 字段自动设置为 null

SQL:如何在分组查询中查找顶部字符串列值

java - 您如何检查 Realm 实例是否已经关闭?

java - 如何从类路径 * 作为字节数组 * 加载 Java 类以进行字节码注入(inject)?

ngOnInit() 中 promise 解析的 Angular fakeAsync 测试

angular - 找不到模块 : Error: Can't resolve '@angular/flex-layout' in '/app'

css - 自动展开所有 PrimeNG Accordion 面板以进行打印