如何将时间转换为 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