javascript - InvalidPipeArgument:'无法将管道'DatePipe'的“2018-01-01-12:12:12:123456”转换为日期'
问题描述
<td>{{suite.testSuiteAttributes &&
suite.testSuiteAttributes.modifiedTimestamp | date: 'yyyy-MM-dd'
}}
</td>
我想要“05-Feb-2018 11:00:00 PM CST”CST 格式的日期格式。但收到错误:
无法将“2018-01-01-12:12:12:123456”转换为管道“DatePipe”的日期
我认为这是由于 timeStamp 不是日期格式..而是从后端仅获取此日期。请建议。
解决方案
您的日期 "2018-01-01-12:12:12:123456" 不是有效的ISO 8601 日期,因此无法通过内置解析器解析。使用有效的日期格式或编写自定义解析器。
您可以使用正则表达式或简单地使用字符串函数,如其他答案所示的子字符串。
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())
推荐阅读
- android - 即使在 setWhen() 中的另一个中指定,在通知中显示当前日期
- android-studio - Android Studio 3.3 XML 设计视图未放大
- android - 如何将 recyclerview 项目转换为位图并将其共享为多个图像?
- ibm-datapower - 即使已启用,Mpg 中也没有探针
- code-generation - 从模板生成文件的语言
- node.js - 在 INSERT INTO 中添加日期
- android - 在我的本机代码中,键盘避免视图不起作用
- node.js - 如何从猫鼬的对象数组中获取单个嵌套对象?
- javascript - Select2JS - 我的列表中有一个默认值
- apache-kafka - 访问 Kafka 流转换历史的选项?