如何将时间转换为 Angular 中的 YYYY-MM-DDThh:mm:ssTZD 这种格式?
How to convert time to this format YYYY-MM-DDThh:mm:ssTZD in Angular?
我们使用 java 作为后端,其中我们使用 ISO 8601。要传递相同的日期,我需要将日期转换为相同的格式。
在java中我们使用
DateFormat iso8601 = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssXXX");
类似地,如何将日期转换为 Angular/TypeScript
中完全相同的格式
我附上一张图片供您参考日期格式。请看图
Convert an ISO date to the date format yyyy-mm-dd in JavaScript
供参考,这是我使用的。在我的示例中,我选择省略小时、分钟和秒。不过,它工作正常。不应该是 angular 特定的,所以它应该像 vanilla javascript.
一样工作
var theDate = new Date();
var dd = String(theDate.getDate()).padStart(2, '0');
var mm = String(theDate.getMonth() + 1).padStart(2, '0'); //January is 0!
var yyyy = theDate.getFullYear();
theDate = yyyy + '-' + mm + '-' + dd;
您需要在组件中使用 DatePipe
app.component.ts
import { Component } from '@angular/core';
import { DatePipe } from '@angular/common';
@Component({
selector: 'my-app',
templateUrl: './app.component.html',
styleUrls: [ './app.component.css' ],
providers: [DatePipe]
})
export class AppComponent {
today;
constructor(
private datePipe:DatePipe
){
this.today = this.datePipe.transform( new Date(),'yyyy-MM-dd h:mm:ssZZZZZ');
}
}
对于任何其他日期格式,请在此处查看:https://angular.io/api/common/DatePipe
工作 stackblitz
示例:https://stackblitz.com/edit/angular-datepipe-in-component-u8bzre?file=src/app/app.component.ts
我找到了如何创建我们想要的格式。
我们可以使用下面的代码来获得所需的输出。
let date: string = ""
date = this.datepipe.transform(new Date(), "yyyy-MM-ddThh:mm:ssZZZZZ")
您也可以用您的日期变量替换 new Date()。
请参考以下内容link,我认为它应该符合您的目的
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString
toISOString() 方法returns 简化扩展 ISO 格式 (ISO 8601) 中的字符串
let today = new Date('05 October 2011 14:48 UTC')
console.log(today.toISOString()) // Returns 2011-10-05T14:48:00.000Z
我们使用 java 作为后端,其中我们使用 ISO 8601。要传递相同的日期,我需要将日期转换为相同的格式。
在java中我们使用
DateFormat iso8601 = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssXXX");
类似地,如何将日期转换为 Angular/TypeScript
中完全相同的格式我附上一张图片供您参考日期格式。请看图
Convert an ISO date to the date format yyyy-mm-dd in JavaScript
供参考,这是我使用的。在我的示例中,我选择省略小时、分钟和秒。不过,它工作正常。不应该是 angular 特定的,所以它应该像 vanilla javascript.
一样工作var theDate = new Date();
var dd = String(theDate.getDate()).padStart(2, '0');
var mm = String(theDate.getMonth() + 1).padStart(2, '0'); //January is 0!
var yyyy = theDate.getFullYear();
theDate = yyyy + '-' + mm + '-' + dd;
您需要在组件中使用 DatePipe
app.component.ts
import { Component } from '@angular/core';
import { DatePipe } from '@angular/common';
@Component({
selector: 'my-app',
templateUrl: './app.component.html',
styleUrls: [ './app.component.css' ],
providers: [DatePipe]
})
export class AppComponent {
today;
constructor(
private datePipe:DatePipe
){
this.today = this.datePipe.transform( new Date(),'yyyy-MM-dd h:mm:ssZZZZZ');
}
}
对于任何其他日期格式,请在此处查看:https://angular.io/api/common/DatePipe
工作 stackblitz
示例:https://stackblitz.com/edit/angular-datepipe-in-component-u8bzre?file=src/app/app.component.ts
我找到了如何创建我们想要的格式。
我们可以使用下面的代码来获得所需的输出。
let date: string = ""
date = this.datepipe.transform(new Date(), "yyyy-MM-ddThh:mm:ssZZZZZ")
您也可以用您的日期变量替换 new Date()。
请参考以下内容link,我认为它应该符合您的目的
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString
toISOString() 方法returns 简化扩展 ISO 格式 (ISO 8601) 中的字符串
let today = new Date('05 October 2011 14:48 UTC')
console.log(today.toISOString()) // Returns 2011-10-05T14:48:00.000Z