javascript - c3 graf - zobraziť časovú os x v miestnom čase AM/PM


Používam knižnicu grafov C3 a mám časové údaje, kde hodnoty pre os X sú vo formáte UTC ISO 8601, napríklad 2017-01-27T11:24:36.012Z (rovnaký formát, ktorý dostanete použitím new Date().toISOString()). Chcem zobraziť značky v miestnom čase.

Graf som nastavil nasledovne...

var now = new Date().toISOString();

  this.lineChart = generate({
    bindto: '#line',
    transition: {
      duration: 1000
    },        
    data: {
      x: 'x',
      xFormat: '%Y-%m-%dT%H:%M:%S.%LZ',
       columns: [
      ['x', now], 
      ['data1', 0]                   
    ]
    },
    axis: {
      x: {
        type: 'timeseries',
        localtime: true,
        tick: {
          format: '%H:%M %p',
          culling : true,
          rotate : 60
        }
      }
    }
  });

a potom načítať ďalšie dáta, kde mám čas začiatku a čas konca, a chcem zobraziť bod každých 15 minút..

  let startTime = new Date(startDateTime);
  let endTime = new Date(endDateTime);
  let nextDate = startTime;
  let dates = new Array<string>();
  dates.push(nextDate.toISOString());
  let data = [];
  while (nextDate <= endTime) {
    nextDate = moment(nextDate).add(30, 'm').toDate();
    dates.push(nextDate.toISOString());
    data.push(0); // to make them show up!
  }

  this.lineChart.load({
    columns: [
      ['x', ...dates],
      ['myData', ...data]          
    ]
  })

Toto produkuje nasledujúce...

Tu sú dve veci nesprávne.

  1. Dáta sú v čase UTC, teda prvá hodnota 22:00 je UTC; miestny čas by mal byť +8:00 hodín (pre môj región)

  2. Keby bolo správne 22:00, myslel by som, že by sa to malo zobraziť ako 22:00, nie v 24-hodinovom formáte.

Pokiaľ vidím, formátovacie reťazce vyzerajú správne.

Vie niekto, čo by tu mohlo byť zlé?

Vopred ďakujem za akúkoľvek pomoc.