当我在Angular2
(打字稿)中执行新的Date()时,我会得到-> DATEE Wed Jul 18 2018 09:13:40 GMT + 0200
问题是我已将Date发送给Java,但Java不允许这种格式。
Java只允许,dd / mm / aaaa或aaaaa / mm / dd,但他不允许Wed Jul 18 2018 09:13:40 GMT + 0200。
我尝试在Angular中创建新格式,但始终获取String,但是我需要格式化Date,因为我在Java中的类获取Date。
let myDate: Date, myDay, myMonth, myYear;
myDate = new Date();
myDay = myDate.setUTCFullYear;
console.log(myDay);
myDay = myDate.toISOString;
console.log(myDay);
console.log(typeof(myDay));
console.log(new Date(myDay));
我无法安装默认情况下angular不带的库,例如:“ moment”。 Ty
答案 0 :(得分:3)
您可以使用Angular的DatePipe
。在您要格式化的组件中:
添加
providers: [DatePipe]
然后注入构造函数
constructor(public datepipe: DatePipe){}
然后在代码中可以像这样
this.datepipe.transform(this.dueDate, 'yyyy/MM/dd')
将格式从“ yyyy / MM / dd”更改为您需要的任何格式
答案 1 :(得分:1)
类型“ HomeComponent”上不存在属性“ datepipe”。您是说'datePipe'吗?ts(2551)
我遇到了问题,datePipe没有声明
答案 2 :(得分:0)
您可以使用
new Date().toLocaleString() =>
"11/10/2016, 11:49:36 AM"
然后使用string.slice获取所需字符串部分
答案 3 :(得分:0)
我想更详细地回答这个问题,而不是回答最初的问题,即如何在Typescript中格式化日期。
出现的问题是您无法读取打字稿提供的日期。答案是不,不能用打字稿格式化日期,因为当格式化的日期转换为字符串时,这仍然会产生字符串。相反,您需要使用函数在Java中解析字符串日期本身,然后您将拥有一个日期变量。
当您将日期发送为Java或任何其他语言的响应时,日期将始终转换为字符串。对于任何不是字符串,整数或布尔值的自定义变量,都是这种情况(假设您的响应是JSON格式)。
您的问题的解决方案是只发送日期,然后使用SimpleDateFormat(format).parse(date)格式化日期(其中format是所需的格式),并为日期的字符串表示日期。
答案 4 :(得分:-4)
编辑:
如果您不想使用任何库,则可以使用内置angular的 DatePipe
遵循使用datePipe的步骤:
1:导入DatePipe:
import { DatePipe } from '@angular/common';
2:在模块的提供程序中添加** DatePipe
:**
NgModule({
providers: [DatePipe]
})
export class AppModule {
}
或者您可以将datePipe添加到组件的提供程序中:
@Component({
selector: 'target-selector',
styleUrls: ['./target.component.css'],
templateUrl: './target.component.html',
providers: [DatePipe]
})
export class TargetComponent {
...
3:现在将其注入构造函数:
constructor(private datePipe: DatePipe) {
}
4:随时可以使用:
this.datepipe.transform(this.myDate, 'yyyy/MM/dd');
或
this.datepipe.transform(this.myDate, 'MM/dd/yyyy');