2015-05-07 4 views
0

Я использую компонент pe: timeline в приложении, над которым я работаю. Единственное, что мне нужно - это установить интервал дат (он всегда должен быть 6 AM-10PM) ... OK EXAMPLEИнтервал даты на pe: изменения временной шкалы на разных серверах, даже если я их жестко закодировал

Локально это выглядит нормально, но когда я развертываю приложение на другом сервере с часовым поясом NorthAmerica/NewYork, отображает странный интервал 8 PM-11AM. WRONG INTERVAL

Я попытался установить часовой пояс компонента на «EET», но, похоже, проблема не устранена.

сгенерировать список дат, которые содержат нижнюю/верхнюю границу интервалов с помощью этой функции:

private List<Date> generateMinMaxDates() { 
    List<Date> aux = new ArrayList<Date>(); 
    Calendar calendar = Calendar.getInstance(); 
    calendar.setTime(currentDate); 
    calendar.set(Calendar.SECOND, 0); 
    calendar.set(Calendar.MINUTE, 0); 
    calendar.set(Calendar.HOUR_OF_DAY, 6); 
    logger.info("Lower Bound:\t" + calendar.getTime()); 
    aux.add(calendar.getTime()); 
    //change the date to today/23:59 
    calendar.set(Calendar.SECOND, 0); 
    calendar.set(Calendar.MINUTE, 0); 
    calendar.set(Calendar.HOUR_OF_DAY, 22); 
    logger.info("Upper Bound:\t" + calendar.getTime()); 
    aux.add(calendar.getTime()); 
    return aux; 
    } 

затем в функции @PostContrust я инициализировать переменную

@PostConstruct 
public void init() { 
    ... etc  
    timezone = TimeZone.getTimeZone("EET"); 
... etc 
} 

и компонент в .xhtml выглядит так:

  <pe:timeline id="timeline" value="#{gatePlanController.gatePlanner}" 
       var="order" showCurrentTime="true" varGroup="group" editable="true" 
       groupsOnRight="false" stackEvents="false" showMajorLabels="false" 
       axisOnTop="true" widgetVar="timelineWdgt" 
       min="#{gatePlanController.dateIntervals[0]}" 
       max="#{gatePlanController.dateIntervals[1]}" 
       start="#{gatePlanController.dateIntervals[0]}" 
       end="#{gatePlanController.dateIntervals[1]}" moveable="true" 
       selectable="true" zoomMin="900000" 
       dropActiveStyleClass="ui-state-highlight" 
       dropHoverStyleClass="ui-state-hover" minHeight="110" 
       timeChangeable="#{gatePlanController.eventsAreChangeable}" 
       timeZone="#{gatePlanController.timezone}"> 

Любая идея, как я мог бы это решить?

ответ

1

Попробуйте установить часовой пояс в Calendar.getInstance().

Ex. Calendar.getInstance(TimeZone.getTimeZone("EET"));

И я думаю, что Calendar по умолчанию принимает текущую дату, поэтому нет необходимости устанавливать время с текущей датой.