小时的时间设定

时间:2014-07-14 17:56:46

标签: java gwt highcharts

我希望在一周的每一天从下午18:00到第二天的上午6:00获得时间。我怎样才能在GWT / highchart中获得plotBands的这段时间?我想在图表上突出这个夜晚。

This is asample in JS,日期定在6月2日至4日,绘制了情节带。我怎样才能做同样的事情,但要在GWT高级图表中花几个小时?

chart.setPlotBands(xaxis.createPlotBand()
                    .setFrom(time.getTime())// how to get here 18:00 pm hour?
                    .setTo(time.getTime())// and here 6:00 am hour?
                    .setColor("#060606"));

我用utc尝试过,什么都没有,但不要认为这是正确的方法:

 .setFrom(time.getTime().UTC(2014, 7, 7, 18, 0, 0))
 .setFrom(time.getTime().UTC(2014, 7, 8, 6, 0, 0))

我想"用x和#34标记时间x到时间y;并在18到6之间的某段时间内用这种图片获得类似的东西

demo

1 个答案:

答案 0 :(得分:0)

我认为没有办法直接用高图突出显示模式。我做了一个快速草图,但没有在GWT / highchart中测试结果。此方法会突出显示int字段hourStart(在您的示例中为18)和lengthInHours(根据您的描述为12)所描述的每日时段:

/* 
 * start and end are the lower and upper bounds of your chart data
 *
 */
public void highlightBands(Date start, Date end) {

  Date startDay = toLocalDay(start);
  Date endDay = toLocalDay(end);
  Date current = add(startDay, Calendar.DAY_OF_MONTH, -1);

  while (current.before(endDay)) {
    Date bandStart = add(current, Calendar.HOUR_OF_DAY, hourStart);
    Date bandEnd = add(bandStart, Calendar.HOUR_OF_DAY, lengthInHours);
    PlotBand band = x.createPlotBand().setFrom(bandStart).setTo(bandEnd);
    x.addPlotBands(band);
    current = add(current, Calendar.DAY_OF_MONTH, 1);
  }
}

发布的代码是this gist的简化版,只是为了显示我的方法而不使用java.util以外的任何内容