合金UI时间格式24小时Liferay 6

时间:2013-05-14 17:10:44

标签: java liferay alloy-ui

您好如何使用24小时格式显示允许ui日期选择器的时间字段? 我正在使用

[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模式,如果我想在我的Portlet类中获取值,那么如何正常获取值 [代码]

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 ....请任何帮助

感谢的

此致

丹尼尔

2 个答案:

答案 0 :(得分:1)

如果当前区域设置的时间格式需要,aui:input taglib(后者又使用liferay-ui:input-dateliferay-ui:input-time taglibs)会显示AM / PM选择框。在Liferay 6.1.1中,查看html/taglib/ui/input_time/page.jsp中的第36行。

因此,您应该保留内置行为,该行为会根据当前区域设置显示AM / PM选择框。

为了在portlet类中正确获取日期,您可以从EditEventAction类中获取灵感,这是在Calendar portlet中添加,更新或删除事件时调用的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方法,了解如何操作:基本上,您必须使用CalendarFactoryUtil.getCalendar方法创建Calendar对象,并传递区域设置和时区,然后你可以设置各种值。

答案 1 :(得分:0)

Liferay UI部分记录很少,这里是我找到的属性http://docs.liferay.com/portal/6.2/taglibs/liferay-ui/input-time.html,但它从未描述过如何使用这些属性,这些属性的值是什么。

我在google搜索和试验上浪费了太多时间,我决定使用JQuery日期时间选择。

另一种方法是不要使用liferay-ui:输入时间,只需使用你自己的小时和分钟选择输入。