Angular2
(TypeScript)で新しいDate()を実行すると、GET-> DATEE Wed Jul 18 2018 2018 09:13:40 GMT + 0200
問題は、日付をJavaに送信したことですが、Javaはこの形式を許可していません。
Javaは、dd/mm/aaaaまたはaaaa/mm/ddのみを許可しますが、2018年7月18日水曜日09:13:40 GMT + 0200は許可しません。
Angular新しいフォーマットを作成しますが、常に文字列を取得しますが、クラスIn Java get 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がデフォルトで提供しないライブラリ、たとえば「モーメント」をインストールできません。Ty
Angularの DatePipe
を使用できます。フォーマットするコンポーネントで:
追加
providers: [DatePipe]
次にコンストラクタに注入します
constructor(public datepipe: DatePipe){}
次に、コードで次のようにフォーマットできます
this.datepipe.transform(this.dueDate, 'yyyy/MM/dd')
フォーマットを「yyyy/MM/dd」から必要なものに変更します
使用できます
new Date().toLocaleString() => "11/10/2016, 11:49:36 AM"
次に、string.sliceを使用して、必要な文字列の部分を取得します
TypeScriptで日付をフォーマットする方法である最初の問題に答えるのではなく、この質問にもう少し詳しく答えたいと思います。
発生する問題は、TypeScriptが提供する日付を読み取れないことです。これに対する答えはnotで、TypeScriptで日付をフォーマットします。これは、フォーマットされた日付が文字列に変換されるため、文字列が得られるためです。代わりに、Javaで関数を使用して文字列日付自体を解析する必要があります。そうすると、日付変数ができます。
日付はalwaysをJavaへの応答として送信すると文字列に変換されます。これは、文字列、整数、ブール値ではないカスタム変数の場合です(応答がJSON形式であると想定)。
問題の解決策は、日付を送信し、SimpleDateFormat(format).parse(date)を使用して日付をフォーマットすることです。ここで、formatは目的のフォーマットであり、日付は日付の文字列表現です。