Angular 5无法从JSON正确解析时间戳

时间:2018-06-29 20:23:26

标签: json angular datetime nancy

我有一个正在运行的(正在生产中的)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总是指向适当位置,因此数据库也是如此。

感谢您的帮助

1 个答案:

答案 0 :(得分:1)

JSON没有Date类型(只有数组,数字,字符串,对象,null和undefined),因此从JSON到TypeScript的转换器无法知道它是日期还是纯字符串。

每次对对象进行反序列化时,都需要解析(Date.Parse(yourString)new Date(yourString))Date属性。

** Date.ParseDate构造函数可以输入日期和字符串,因此您在使用它们之前不必真正键入值。*