2013-05-14 3 views
0

Привет, как показать, разрешите ли вы выбирать дату для поля времени, используя формат 24 часа? I'f Я используюФормат времени сплава UI 24 часа Liferay 6

[code] 

<% 
      Calendar dob = CalendarFactoryUtil.getCalendar(); 
     dob.setTime(new Date()); 
     %> 

     <aui:input name="schedule_msg" model="<%= Message_Schedule.class %>" 
     bean="<%= msch %>" value="<%= now %>" label="Schedule Time"/> 



[/code] 

он показывает в режиме AM/PM ... или при использовании режима AM/PM, как получить значение ?? нормально, если я хочу, чтобы получить значение в моем портлетов классе так же, как этого [код]

int day = ParamUtil.getInteger(request, "schedule_msgDay"); 
     int month = ParamUtil.getInteger(request, "schedule_msgMonth"); 
     int year = ParamUtil.getInteger(request, "schedule_msgYear"); 
     int hour = ParamUtil.getInteger(request, "schedule_msgHour"); 
     int min = ParamUtil.getInteger(request, "schedule_msgMinute"); 

     try 
     { 

      msgSchedule.setSchedule_msg(PortalUtil.getDate(month, day, year, hour, min, new PortalException())); 
     }catch(Exception e) 
     { 
      msgSchedule.setSchedule_msg(new Date()); 
     } 

[/ код] любая идея, как получить это значение ?? пример в картине показывают 4:54: PM, так это означает, что в течение 24 часов она стала 16:54:00 .... Пожалуйста, любая помощь

THANK в

С уважением

Даниал

ответ

1

Taglib aui:input (который, в свою очередь, использует теги liferay-ui:input-date и liferay-ui:input-time) показывает поле выбора AM/PM, если для этого требуется формат времени для текущей локали. В Liferay 6.1.1 взгляните на строку 36 в html/taglib/ui/input_time/page.jsp.

Таким образом, вы обязательно должны придерживаться встроенного поведения, которое показывает окно выбора AM/PM в зависимости от текущей локали.

Для правильного отображения даты в классе портлетов вы можете черпать вдохновение из класса EditEventAction, что является действием Struts, которое вызывается при добавлении, обновлении или удалении события в портлете Календаря. Что-то вроде этого:

int startDateMonth = ParamUtil.getInteger(actionRequest, "startDateMonth"); 
int startDateDay = ParamUtil.getInteger(actionRequest, "startDateDay"); 
int startDateYear = ParamUtil.getInteger(actionRequest, "startDateYear"); 
int startDateHour = ParamUtil.getInteger(actionRequest, "startDateHour"); 
int startDateMinute = ParamUtil.getInteger(actionRequest, "startDateMinute"); 
int startDateAmPm = ParamUtil.getInteger(actionRequest, "startDateAmPm"); 

if (startDateAmPm == Calendar.PM) { 
    startDateHour += 12; 
} 

После этого, если вы хотите получить Date объект из этих значений, то важно, чтобы решить, являются ли эти значения даты в формате UTC, в часовом поясе текущего пользователя или любой другой. Посмотрите на метод addEvent в классе CalEventLocalServiceImpl, чтобы узнать, как это сделать: в основном вы должны создать объект Calendar с помощью метода CalendarFactoryUtil.getCalendar, передавая локаль и часовой пояс, а затем вы можете установить различные значения.

+0

Я вижу Спасибо: D ... Работа ИТ :) – dmh

0

Часть Liferay UI плохо документирована, вот атрибуты, которые я нашел, http://docs.liferay.com/portal/6.2/taglibs/liferay-ui/input-time.html, но никогда не описывают, как использовать эти атрибуты, каковы значения этих атрибутов.

Я потратил слишком много времени на поиск в Google и экспериментирование, и вместо этого решил использовать JQuery datetime pick.

Другой способ - не использовать liferay-ui: input-time, просто чтобы использовать собственные часы и минуты, выберите вход.