<td>{{suite.testSuiteAttributes &&
suite.testSuiteAttributes.modifiedTimestamp | date: 'yyyy-MM-dd'
}}
</td>我希望“05-2月-2018-2018年11:00 PM CST”CST format.But中的日期格式得到错误:
无法将"2018-01-01-12:12:12:123456“转换为”管道“DatePipe的日期
我认为这是因为timeStamp不是在日期,format..but只从后端获得这个日期。请建议一下。
发布于 2019-03-11 09:17:46
我认为您从服务器获得了错误的格式日期。您需要一个有效格式的日期来转换它。
因此,这里有一个解决您的问题的解决方案,我已经编写了一个myDateParser()方法来将无效日期转换为有效日期。
your.component.ts
import { Component } from '@angular/core';
@Component({
selector: 'my-app',
templateUrl: './app.component.html',
styleUrls: [ './app.component.css' ]
})
export class AppComponent {
name = 'Angular';
modifiedTimestamp;
constructor(){
// Passing unformatter date
this.modifiedTimestamp = this.myDateParser('2018-01-01-12:12:12:123456');
}
/**
* Custom Date parser
*/
myDateParser(dateStr : string) : string {
// 2018-01-01T12:12:12.123456; - converting valid date format like this
let date = dateStr.substring(0, 10);
let time = dateStr.substring(11, 19);
let millisecond = dateStr.substring(20)
let validDate = date + 'T' + time + '.' + millisecond;
console.log(validDate)
return validDate
}
}your.component.html
<table>
<tr>
<td>{{modifiedTimestamp | date: 'yyyy-MM-dd'}}</td>
</tr>
</table>希望这能帮上忙!
发布于 2019-03-11 09:31:34
您的日期"2018-01-01-12:12:12:123456“不是有效的ISO 8601日期,因此不能被内置解析器解析。要么使用有效的日期格式,要么编写自定义解析器。
您可以使用regex,也可以简单地使用字符串函数,如另一个答案所示的子字符串。
Javascript中的日期将位于浏览器的本地时区,即用户的系统时间,在不同的时区中没有本地创建日期的方法。您可以在UTC中创建日期,并使用toLocaleString()将其转换为特定的时区。取决于从后端发送的日期是UTC还是CT。如果是CT,那么这将只适用于CT时区的用户。
let result = "2018-01-01-12:12:12:123456".match(/(\d{4})-(\d{2})-(\d{2})-(\d{2}):(\d{2}):(\d{2}):(\d{3})/).map(x => parseInt(x, 10));
result.shift();
console.log(new Date(...result).toLocaleString())
https://stackoverflow.com/questions/55098459
复制相似问题