使用 amchart 4 和 angular 导出的 12 小时时间格式(CSV、XLSX)

12 hour time format in export(CSV, XLSX) using amchart 4 and angular

我在 angular 中使用 amcharts 4 来显示图形,我想使用 amcharts 4 的内置导出功能以 CSV 和 XLSX 格式导出图形数据。

因此,我无法在导出的 CSV/XLSX 文件中使用 AM/PM 以 12 小时格式格式化日期列,以下是我正在尝试的代码:

  chart.exporting.menu = new am4core.ExportMenu();
  chart.exporting.menu.verticalAlign = 'bottom';
  chart.exporting.menu.items = [{
    label: '...',
    menu: [
      { type: 'csv', label: 'CSV' },
      { type: 'xlsx', label: 'XLSX' }
    ]
  }];

  chart.exporting.dataFields = exportColumnNames;
  // dateAxis.dateFormats.setKey("hour", "h a");
  // dateAxis.periodChangeDateFormats.setKey("hour", "h a");
  chart.exporting.dateFields.push('Date');
  chart.exporting.dateFormat = 'MM-d-YYYY h:m:s a';

使用上述代码导出时,导出的文件以 24 小时格式显示日期。

我也使用适配器更改日期格式如下:

  chart.exporting.adapter.add('data', (data) => {
    data.data.map(signalObj => {
      signalObj.Date = moment(new Date(signalObj.Date)).format('YYYY-MM-DD hh:mm A');
      return signalObj;
    });
    console.log(data)   // this shows date in 12 hour format with AM/PM
    return data;
  });

使用上面的代码我也得到了 24 小时格式的日期。

请告诉我应该如何解决上述问题。

实际上“日期”字段是字符串格式,所以我们需要给输入日期格式如下:

chart.dateFormatter.inputDateFormat = 'yyyy-MM-ddTHH:mm:ss';

它奏效了...