List of usage examples for org.joda.time.format ISODateTimeFormat dateOptionalTimeParser
public static DateTimeFormatter dateOptionalTimeParser()
From source file:org.grails.plugins.elasticsearch.conversion.unmarshall.DomainClassUnmarshaller.java
License:Apache License
private Object unmarshallProperty(GrailsDomainClass domainClass, String propertyName, Object propertyValue, DefaultUnmarshallingContext unmarshallingContext) { // TODO : adapt behavior if the mapping option "component" or "reference" are set // below is considering the "component" behavior if (LOG.isDebugEnabled()) { //yeah, it's ugly to use + LOG.debug("Unmarshalling property " + propertyName + " with value " + propertyValue + " " + (propertyValue != null ? propertyValue.getClass().getName() : "")); }/*from w ww . j a v a 2 s .c o m*/ SearchableClassPropertyMapping scpm = elasticSearchContextHolder.getMappingContext(domainClass) .getPropertyMapping(propertyName); Object parseResult = null; if (null == scpm) { // TODO: unhandled property exists in index LOG.error("Index contains a unhandled property which will be ignored. Property name" + propertyName + " with value " + propertyValue); return null; } if (null != scpm && propertyValue instanceof Map) { @SuppressWarnings({ "unchecked" }) Map<String, Object> data = (Map<String, Object>) propertyValue; // Handle cycle reference if (data.containsKey("ref")) { unmarshallingContext.addCycleRef(propertyValue); return null; } // Searchable reference. if (scpm.getReference() != null) { Class<?> refClass = scpm.getBestGuessReferenceType(); GrailsDomainClass refDomainClass = null; for (GrailsClass dClazz : grailsApplication.getArtefacts(DomainClassArtefactHandler.TYPE)) { if (dClazz.getClazz().equals(refClass)) { refDomainClass = (GrailsDomainClass) dClazz; break; } } if (refDomainClass == null) { throw new IllegalStateException("Found reference to non-domain class: " + refClass); } return unmarshallReference(refDomainClass, data, unmarshallingContext); } if (data.containsKey("class")) { // Embedded instance. if (!scpm.isComponent()) { // maybe ignore? throw new IllegalStateException("Property " + domainClass.getName() + "." + propertyName + " is not mapped as [component], but broken search hit found."); } GrailsDomainClass nestedDomainClass = (GrailsDomainClass) grailsApplication .getArtefact(DomainClassArtefactHandler.TYPE, (String) data.get("class")); if (domainClass != null) { // Unmarshall 'component' instance. if (!scpm.isComponent()) { throw new IllegalStateException("Object " + data.get("class") + " found in index, but [" + propertyName + "] is not mapped as component."); } parseResult = unmarshallDomain(nestedDomainClass, data.get("id"), data, unmarshallingContext); } } } else if (propertyValue instanceof Collection) { List<Object> results = new ArrayList<Object>(); int index = 0; for (Object innerValue : (Collection) propertyValue) { unmarshallingContext.getUnmarshallingStack().push(String.valueOf(index)); Object parseItem = unmarshallProperty(domainClass, propertyName, innerValue, unmarshallingContext); if (parseItem != null) { results.add(parseItem); } index++; unmarshallingContext.getUnmarshallingStack().pop(); } parseResult = results; } else if (scpm.getPropertyType() == Date.class) { //TODO: this is a quick fix as the unmarshalling of dates doesn't work DateTimeFormatter dtf = ISODateTimeFormat.dateOptionalTimeParser(); try { DateTime dateTime = dtf.parseDateTime(propertyValue.toString()); parseResult = dateTime.toDate(); } catch (Exception e) { LOG.error("Failed to parse the value " + propertyValue + "as date for property " + propertyName, e); } } else { // consider any custom property editors here. if (scpm.getConverter() != null) { LOG.debug("Using a converter for property" + propertyName); if (scpm.getConverter() instanceof Class) { try { PropertyEditor propertyEditor = (PropertyEditor) ((Class) scpm.getConverter()) .newInstance(); propertyEditor.setAsText((String) propertyValue); parseResult = propertyEditor.getValue(); } catch (Exception e) { throw new IllegalArgumentException( "Unable to unmarshall " + propertyName + " using " + scpm.getConverter(), e); } } } else if (scpm.getReference() != null) { // This is a reference and it MUST be null because it's not a Map. if (propertyValue != null) { throw new IllegalStateException("Found searchable reference which is not a Map: " + domainClass + "." + propertyName + " = " + propertyValue); } parseResult = null; } } if (parseResult != null) { LOG.debug("ParsedValue is ..." + parseResult); return parseResult; } else { LOG.debug("We will just return the same propery value as received..." + propertyValue); return propertyValue; } }
From source file:org.jahia.bin.Action.java
License:Open Source License
protected void setProperties(JCRNodeWrapper newNode, Map<String, List<String>> parameters) throws RepositoryException { Set<Map.Entry<String, List<String>>> set = parameters.entrySet(); for (Map.Entry<String, List<String>> entry : set) { String key = entry.getKey(); if (!Render.RESERVED_PARAMETERS.contains(key)) { List<String> values = entry.getValue(); ExtendedPropertyDefinition propertyDefinition = null; propertyDefinition = newNode.getApplicablePropertyDefinition(key); if (propertyDefinition == null) { continue; }//from w w w.ja va 2s . c om if (propertyDefinition.isMultiple()) { newNode.setProperty(key, values.toArray(new String[values.size()])); } else if (values.get(0).length() > 0) { if (propertyDefinition.getRequiredType() == ExtendedPropertyType.DATE) { DateTime dateTime = ISODateTimeFormat.dateOptionalTimeParser().parseDateTime(values.get(0)); newNode.setProperty(key, dateTime.toCalendar(Locale.ENGLISH)); } else { newNode.setProperty(key, values.get(0)); } } } } }
From source file:org.jahia.bin.DefaultPutAction.java
License:Open Source License
@Override public ActionResult doExecute(HttpServletRequest req, RenderContext renderContext, Resource resource, JCRSessionWrapper session, Map<String, List<String>> parameters, URLResolver urlResolver) throws Exception { JCRNodeWrapper node = session.getNode(urlResolver.getPath()); // Get node information before any modification as a rule can delete it String primaryNodeTypeName = node.getPrimaryNodeTypeName(); session.checkout(node);/*w w w . ja v a 2 s. c o m*/ if (parameters.containsKey(Render.REMOVE_MIXIN)) { for (String mixinType : parameters.get(Render.REMOVE_MIXIN)) { node.removeMixin(mixinType); } } if (parameters.containsKey(Constants.JCR_MIXINTYPES)) { for (String mixinType : parameters.get(Constants.JCR_MIXINTYPES)) { node.addMixin(mixinType); } } Set<Map.Entry<String, List<String>>> set = parameters.entrySet(); try { for (Map.Entry<String, List<String>> entry : set) { String key = entry.getKey(); if (!Render.getReservedParameters().contains(key)) { List<String> values = entry.getValue(); final ExtendedPropertyDefinition propertyDefinition = ((JCRNodeWrapper) node) .getApplicablePropertyDefinition(key); if (propertyDefinition == null) { continue; } if (propertyDefinition.isMultiple()) { if (values.size() == 1 && values.get(0).equals("jcrClearAllValues")) { node.setProperty(key, new Value[0]); } else { node.setProperty(key, values.toArray(new String[values.size()])); } } else if (propertyDefinition.getRequiredType() == PropertyType.DATE) { // Expecting ISO date yyyy-MM-dd'T'HH:mm:ss DateTime dateTime = ISODateTimeFormat.dateOptionalTimeParser().parseDateTime(values.get(0)); node.setProperty(key, dateTime.toCalendar(Locale.ENGLISH)); } else { node.setProperty(key, values.get(0)); } } } session.save(); } catch (CompositeConstraintViolationException e) { List<JSONObject> jsonErrors = new ArrayList<JSONObject>(); for (ConstraintViolationException exception : e.getErrors()) { jsonErrors.add(getJSONConstraintError(exception)); } JSONObject jsonObject = new JSONObject(); jsonObject.put("validationError", jsonErrors); return new ActionResult(HttpServletResponse.SC_BAD_REQUEST, null, jsonObject); } catch (ConstraintViolationException e) { JSONObject jsonObject = new JSONObject(); jsonObject.put("validationError", Arrays.asList(getJSONConstraintError(e))); return new ActionResult(HttpServletResponse.SC_BAD_REQUEST, null, jsonObject); } catch (Exception e) { JSONObject jsonObject = new JSONObject(); jsonObject.put("error", e.getMessage()); return new ActionResult(HttpServletResponse.SC_INTERNAL_SERVER_ERROR, null, jsonObject); } if (req.getParameter(Render.AUTO_CHECKIN) != null && req.getParameter(Render.AUTO_CHECKIN).length() > 0) { session.getWorkspace().getVersionManager().checkpoint(node.getPath()); } String sessionID = ""; HttpSession httpSession = req.getSession(false); if (httpSession != null) { sessionID = httpSession.getId(); } if (loggingService.isEnabled()) { loggingService.logContentEvent(renderContext.getUser().getName(), req.getRemoteAddr(), sessionID, node.getIdentifier(), urlResolver.getPath(), primaryNodeTypeName, "nodeUpdated", new JSONObject(req.getParameterMap()).toString()); } final String requestWith = req.getHeader("x-requested-with"); if (req.getHeader("accept") != null && req.getHeader("accept").contains("application/json") && requestWith != null && requestWith.equals("XMLHttpRequest")) { JSONObject jsonObject = null; try { jsonObject = Render.serializeNodeToJSON(node); } catch (RepositoryException e) { } return new ActionResult(HttpServletResponse.SC_OK, node.getPath(), jsonObject); } else { return ActionResult.OK; } }
From source file:org.jahia.bin.Render.java
License:Open Source License
protected void doPut(HttpServletRequest req, HttpServletResponse resp, RenderContext renderContext, URLResolver urlResolver) throws RepositoryException, IOException { JCRSessionWrapper session = jcrSessionFactory.getCurrentUserSession(urlResolver.getWorkspace(), urlResolver.getLocale());/*from w ww .j a v a 2 s.c om*/ JCRNodeWrapper node = session.getNode(urlResolver.getPath()); session.checkout(node); @SuppressWarnings("unchecked") Map<String, String[]> parameters = req.getParameterMap(); if (parameters.containsKey(REMOVE_MIXIN)) { String[] mixinTypes = (String[]) parameters.get(REMOVE_MIXIN); for (String mixinType : mixinTypes) { node.removeMixin(mixinType); } } if (parameters.containsKey(Constants.JCR_MIXINTYPES)) { String[] mixinTypes = (String[]) parameters.get(Constants.JCR_MIXINTYPES); for (String mixinType : mixinTypes) { node.addMixin(mixinType); } } Set<Map.Entry<String, String[]>> set = parameters.entrySet(); try { for (Map.Entry<String, String[]> entry : set) { String key = entry.getKey(); if (!reservedParameters.contains(key)) { String[] values = entry.getValue(); final ExtendedPropertyDefinition propertyDefinition = ((JCRNodeWrapper) node) .getApplicablePropertyDefinition(key); if (propertyDefinition == null) { continue; } if (propertyDefinition.isMultiple()) { node.setProperty(key, values); } else if (propertyDefinition.getRequiredType() == PropertyType.DATE) { // Expecting ISO date yyyy-MM-dd'T'HH:mm:ss DateTime dateTime = ISODateTimeFormat.dateOptionalTimeParser().parseDateTime(values[0]); node.setProperty(key, dateTime.toCalendar(Locale.ENGLISH)); } else { node.setProperty(key, values[0]); } } } } catch (ConstraintViolationException e) { resp.sendError(HttpServletResponse.SC_BAD_REQUEST, "bad parameter"); return; } session.save(); if (req.getParameter(AUTO_CHECKIN) != null && req.getParameter(AUTO_CHECKIN).length() > 0) { session.getWorkspace().getVersionManager().checkpoint(node.getPath()); } final String requestWith = req.getHeader("x-requested-with"); if (req.getHeader("accept").contains("application/json") && requestWith != null && requestWith.equals("XMLHttpRequest")) { try { serializeNodeToJSON(node).write(resp.getWriter()); } catch (JSONException e) { logger.error(e.getMessage(), e); } } else { performRedirect(null, null, req, resp, toParameterMapOfListOfString(req), false); } addCookie(req, resp); String sessionID = ""; HttpSession httpSession = req.getSession(false); if (httpSession != null) { sessionID = httpSession.getId(); } if (loggingService.isEnabled()) { loggingService.logContentEvent(renderContext.getUser().getName(), req.getRemoteAddr(), sessionID, node.getIdentifier(), urlResolver.getPath(), node.getPrimaryNodeType().getName(), "nodeUpdated", new JSONObject(req.getParameterMap()).toString()); } }
From source file:org.jahia.modules.gateway.JSONToJCRDeserializer.java
License:Open Source License
private void setPropertiesOnNode(JCRNodeWrapper newNode, JSONObject properties, ExtendedNodeType nodeType) throws RepositoryException { Iterator keys = properties.keys(); while (keys.hasNext()) { String property = (String) keys.next(); try {/*www . j a va 2 s .c om*/ String value = (String) properties.get(property); boolean needUpdate; logger.debug("added property " + property + " with value " + value); String name = property.replaceAll("_", ":"); try { needUpdate = !(newNode.getProperty(name).getValue().getString().equals(value)); } catch (RepositoryException e1) { needUpdate = true; } if (needUpdate) { ExtendedPropertyDefinition propertyDefinition = nodeType.getPropertyDefinition(name); if (propertyDefinition == null) { ExtendedNodeType[] declaredSupertypes = nodeType.getDeclaredSupertypes(); for (ExtendedNodeType declaredSupertype : declaredSupertypes) { propertyDefinition = declaredSupertype.getPropertyDefinition(name); if (propertyDefinition != null) { break; } } } int requiredType = 0; if (propertyDefinition != null) { requiredType = propertyDefinition.getRequiredType(); } switch (requiredType) { case ExtendedPropertyType.DATE: DateTime dateTime = ISODateTimeFormat.dateOptionalTimeParser().parseDateTime(value); newNode.setProperty(name, dateTime.toCalendar(Locale.ENGLISH)); break; case ExtendedPropertyType.REFERENCE: case ExtendedPropertyType.WEAKREFERENCE: File file = new File(value); JCRNodeWrapper files = newNode.getSession() .getNode(newNode.getResolveSite().getPath() + "/files"); FileInputStream is = null; try { is = FileUtils.openInputStream(file); JCRNodeWrapper reference = files.uploadFile(file.getName(), is, JCRContentUtils.getMimeType(file.getName())); newNode.setProperty(name, reference); } finally { IOUtils.closeQuietly(is); FileUtils.deleteQuietly(file); } break; default: newNode.setProperty(name, value); break; } } } catch (JSONException e) { logger.error(e.getMessage(), e); } catch (IOException e) { logger.error(e.getMessage(), e); } } }
From source file:org.jahia.modules.portal.service.PortalService.java
License:Open Source License
public PortalContext buildPortalContext(RenderContext renderContext, JCRNodeWrapper portalTabNode, JCRSessionWrapper sessionWrapper, final boolean updateLastPortalUsed) throws RepositoryException { final String currentPath = portalTabNode.getPath(); final boolean isEditable = portalTabNode.hasPermission("jcr:write_live"); final Locale mainResourceLocale = renderContext.getMainResourceLocale(); final String siteKey = renderContext.getSite().getSiteKey(); PortalContext portalContext = JCRTemplate.getInstance().doExecuteWithSystemSession( sessionWrapper.getUser().getUsername(), sessionWrapper.getWorkspace().getName(), sessionWrapper.getLocale(), new JCRCallback<PortalContext>() { @Override/*from w w w. ja v a 2s .c om*/ public PortalContext doInJCR(JCRSessionWrapper session) throws RepositoryException { JCRNodeWrapper portalTabNode = session.getNode(currentPath); JCRNodeWrapper portalNode = JCRContentUtils.getParentOfType(portalTabNode, PortalConstants.JMIX_PORTAL); PortalContext portalContext = new PortalContext(); boolean isModel = portalNode.isNodeType(PortalConstants.JNT_PORTAL_MODEL); portalContext.setEditable(isEditable); portalContext.setPath(portalNode.getPath()); portalContext.setIdentifier(portalNode.getIdentifier()); portalContext.setTabPath(portalTabNode.getPath()); portalContext.setTabIdentifier(portalTabNode.getIdentifier()); portalContext.setFullTemplate( portalNode.getProperty(PortalConstants.J_FULL_TEMPLATE).getString()); portalContext.setLock(portalNode.hasProperty(PortalConstants.J_LOCKED) && portalNode.getProperty(PortalConstants.J_LOCKED).getBoolean()); portalContext.setModel(isModel); portalContext.setCustomizable(isModel && portalNode.hasProperty(PortalConstants.J_ALLOW_CUSTOMIZATION) && portalNode.getProperty(PortalConstants.J_ALLOW_CUSTOMIZATION).getBoolean()); JCRSiteNode site = JahiaSitesService.getInstance().getSiteByKey(siteKey, session); JCRNodeWrapper modelNode = null; boolean modelDeleted = false; if (isModel) { portalContext.setEnabled(portalNode.hasProperty(PortalConstants.J_ENABLED) && portalNode.getProperty(PortalConstants.J_ENABLED).getBoolean()); } else { try { modelNode = (JCRNodeWrapper) portalNode.getProperty(PortalConstants.J_MODEL) .getNode(); } catch (Exception e) { // model deleted } if (modelNode != null) { portalContext.setModelPath(modelNode.getPath()); portalContext.setModelIdentifier(modelNode.getIdentifier()); portalContext.setEnabled(modelNode.hasProperty(PortalConstants.J_ENABLED) && modelNode.getProperty(PortalConstants.J_ENABLED).getBoolean()); } else { portalContext.setEnabled(false); modelDeleted = true; } } portalContext.setSiteKey(site.getSiteKey()); portalContext.setPortalTabTemplates(new ArrayList<PortalKeyNameObject>()); portalContext.setPortalTabSkins(new ArrayList<PortalKeyNameObject>()); portalContext.setPortalWidgetTypes(new TreeSet<PortalWidgetType>(WIDGET_TYPES_COMPARATOR)); if (isEditable) { // Templates for portal tabs List<JCRNodeWrapper> templates = getPortalTabTemplates( portalNode.getProperty(PortalConstants.J_TEMPLATE_ROOT_PATH).getString(), session); for (JCRNodeWrapper template : templates) { PortalKeyNameObject portalTabTemplate = new PortalKeyNameObject(); portalTabTemplate.setName(template.getDisplayableName()); portalTabTemplate.setKey(template.getName()); portalContext.getPortalTabTemplates().add(portalTabTemplate); } // Widget skins SortedSet<View> widgetSkins = getViewSet(PortalConstants.JMIX_PORTAL_WIDGET, site); for (View widgetView : widgetSkins) { if (widgetView.getKey().startsWith("box")) { PortalKeyNameObject portalTabSkin = new PortalKeyNameObject(); try { portalTabSkin.setName(Messages.get(widgetView.getModule(), widgetView.getKey(), mainResourceLocale)); } catch (MissingResourceException e) { // no resourceBundle for skin portalTabSkin.setName(widgetView.getKey()); } portalTabSkin.setKey(widgetView.getKey()); portalContext.getPortalTabSkins().add(portalTabSkin); } } // Widget types Collection<ExtendedNodeType> widgetTypes = getPortalWidgetNodeTypes(portalNode); Collection<ExtendedNodeType> modelWidgetTypes = !isModel && !modelDeleted ? getPortalWidgetNodeTypes(modelNode) : null; for (ExtendedNodeType widgetType : widgetTypes) { if (!isModel && !modelDeleted) { if (modelWidgetTypes.contains(widgetType)) { PortalWidgetType portalWidgetType = buildPortalWidgetType(widgetType, site, mainResourceLocale, false); portalContext.getPortalWidgetTypes().add(portalWidgetType); modelWidgetTypes.remove(widgetType); } } else { PortalWidgetType portalWidgetType = buildPortalWidgetType(widgetType, site, mainResourceLocale, false); portalContext.getPortalWidgetTypes().add(portalWidgetType); } } if (!isModel && !modelDeleted) { for (ExtendedNodeType modelWidgetType : modelWidgetTypes) { PortalWidgetType portalWidgetType = buildPortalWidgetType(modelWidgetType, site, mainResourceLocale, true); portalContext.getPortalWidgetTypes().add(portalWidgetType); } } } if (updateLastPortalUsed) { DateTime currentDateTime = new DateTime(); String lastViewed = portalNode.getPropertyAsString(PortalConstants.J_LASTVIEWED); boolean firstView = StringUtils.isEmpty(lastViewed); if (firstView || currentDateTime.getDayOfYear() != ISODateTimeFormat .dateOptionalTimeParser().parseDateTime(lastViewed).getDayOfYear()) { portalNode.setProperty(PortalConstants.J_LASTVIEWED, currentDateTime.toCalendar(mainResourceLocale)); portalNode.saveSession(); } } return portalContext; } }); portalContext.setBaseUrl(StringUtils.isNotEmpty(renderContext.getURLGenerator().getContext()) ? renderContext.getURLGenerator().getContext() + renderContext.getURLGenerator().getBaseLive() : renderContext.getURLGenerator().getBaseLive()); return portalContext; }
From source file:org.jahia.modules.portal.sitesettings.PortalFactoryHandler.java
License:Open Source License
public void doUserPortalsQuery(RequestContext ctx, UserPortalsTable userPortalsTable) { try {/* ww w. j a v a 2 s.com*/ JCRSessionWrapper sessionWrapper = getCurrentUserSession(ctx, "live"); final String siteKey = getRenderContext(ctx).getSite().getSiteKey(); final UserPortalsTable finalTable = userPortalsTable; LinkedHashMap<String, UserPortalsTableRow> tableRows = JCRTemplate.getInstance() .doExecuteWithSystemSession(sessionWrapper.getUser().getUsername(), "live", sessionWrapper.getLocale(), new JCRCallback<LinkedHashMap<String, UserPortalsTableRow>>() { @Override public LinkedHashMap<String, UserPortalsTableRow> doInJCR(JCRSessionWrapper session) throws RepositoryException { Query query = getUserPortalsQuery(siteKey, finalTable, session); query.setLimit(finalTable.getPager().getItemsPerPage()); query.setOffset(finalTable.getPager().getItemsPerPage() * (finalTable.getPager().getPage() - 1)); LinkedHashMap<String, UserPortalsTableRow> tableRowsToReturn = new LinkedHashMap<String, UserPortalsTableRow>(); if (query.getStatement().contains("isdescendantnode") || finalTable.getSearchCriteria() == null || !StringUtils .isNotEmpty(finalTable.getSearchCriteria().getSearchString())) { NodeIterator nodeIterator = query.execute().getNodes(); while (nodeIterator.hasNext()) { JCRNodeWrapper portalNode = (JCRNodeWrapper) nodeIterator.next(); UserPortalsTableRow row = new UserPortalsTableRow(); row.setUserNodeIdentifier(JCRContentUtils .getParentOfType(portalNode, "jnt:user").getIdentifier()); try { row.setModelName(((JCRNodeWrapper) portalNode.getProperty("j:model") .getNode()).getDisplayableName()); } catch (Exception e) { // model deleted row.setModelName("No model found"); } DateTime sinceDate = ISODateTimeFormat.dateOptionalTimeParser() .parseDateTime(portalNode.getPropertyAsString("j:lastViewed")); row.setLastUsed( Days.daysBetween(new LocalDate(sinceDate), new LocalDate()) .getDays()); row.setCreated( portalNode.getProperty("jcr:created").getDate().getTime()); tableRowsToReturn.put(portalNode.getPath(), row); } } return tableRowsToReturn; } }); userPortalsTable.setRows(tableRows); } catch (RepositoryException e) { logger.error(e.getMessage(), e); } }
From source file:org.jahia.services.workflow.jbpm.JahiaBusinessCalendar.java
License:Open Source License
public Date add(Date date, String duration) { try {//from ww w . ja v a2 s .c om Calendar calendar = Calendar.getInstance(); calendar.setTimeInMillis(Long.valueOf(duration)); logger.info("Workflow Variable Date = " + SimpleDateFormat .getDateTimeInstance(DateFormat.MEDIUM, DateFormat.SHORT).format(calendar.getTime())); return calendar.getTime(); } catch (NumberFormatException e) { try { DateTime dateTime = ISODateTimeFormat.dateOptionalTimeParser().parseDateTime(duration); return dateTime.toDate(); } catch (Exception e1) { return super.add(date, duration); } } }
From source file:org.jahia.services.workflow.WorkflowVariable.java
License:Open Source License
public Date getValueAsDate() { if (null == value || "".equals(value.trim())) { return null; }/*w ww . j av a2 s . c om*/ try { Calendar calendar = Calendar.getInstance(); calendar.setTimeInMillis(Long.valueOf(value)); return calendar.getTime(); } catch (NumberFormatException e) { DateTime dateTime = ISODateTimeFormat.dateOptionalTimeParser().parseDateTime(value); return dateTime.toDate(); } }
From source file:org.jahia.taglibs.functions.Functions.java
License:Open Source License
public static String formatISODate(java.lang.String dateToParse, String pattern, Locale locale) { try {/*ww w . j av a 2 s . co m*/ DateTime dateTime = ISODateTimeFormat.dateOptionalTimeParser().parseDateTime(dateToParse); return DateTimeFormat.forPattern(pattern).withLocale(locale != null ? locale : Locale.ENGLISH) .print(!dateToParse.endsWith("Z") ? dateTime : dateTime.toDateTime(DateTimeZone.forID("UTC"))); } catch (Exception e) { logger.debug("Unable to parse date:" + dateToParse, e); return null; } }