我有一个正在运行的(正在生产中的)Web应用程序(材料+角度5(5.2.11))。另外,我有一个使用Nancy FX和newtonsoft json以.dot core 2(C#)编写的API。
问题:
DB(在Ubuntu Server上运行的MariaDB):我在记录上具有此值:2018-05-16 20:42:36
。
调用端点会产生正确的JSON:
{“ timestamp”:“ 2018-05-16T20:42:36Z”}
(出于理智考虑,其他字段已删除)
我在Angular应用上使用:
...返回this._http.get(this.endpoint +'/'+ uuid,{标头: this._getHeaders})。catch(this.handleError);
<T>
代表包含timedate: Date;
作为属性的模型。
使用服务:
this._dataService.getByUuid(uuid).subscribe(result => { console.log(result); });
给予:
对象{timedate:“ 2018-05-16 08:05:36”}
因此,时间缺乏AMPM格式,我无法正确显示它。 {{element.timedate | date: 'dd/MM/yyyy HH:mm' }}
什么也不做,因为timedate
只是一个裸字符串。
我尝试过什么:
任何日期时间字段都有问题。 JSON总是指向适当位置,因此数据库也是如此。
感谢您的帮助
答案 0 :(得分:1)
JSON没有Date类型(只有数组,数字,字符串,对象,null和undefined),因此从JSON到TypeScript的转换器无法知道它是日期还是纯字符串。
每次对对象进行反序列化时,都需要解析(Date.Parse(yourString)
或new Date(yourString)
)Date属性。
** Date.Parse
和Date
构造函数可以输入日期和字符串,因此您在使用它们之前不必真正键入值。*