Author: bpoussin Date: 2013-03-22 12:50:28 +0100 (Fri, 22 Mar 2013) New Revision: 1560 Url: http://nuiton.org/projects/wikitty/repository/revisions/1560 Log: add support for now and today for date conversion Modified: trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyUtil.java Modified: trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyUtil.java =================================================================== --- trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyUtil.java 2013-03-15 23:40:28 UTC (rev 1559) +++ trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyUtil.java 2013-03-22 11:50:28 UTC (rev 1560) @@ -88,6 +88,7 @@ import org.apache.commons.lang3.tuple.Pair; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; +import org.nuiton.util.DateUtil; import org.nuiton.wikitty.entities.WikittyTypes; import org.nuiton.wikitty.generator.WikittyTransformerUtil; @@ -111,6 +112,9 @@ public static final String DEFAULT_MAJOR_VERSION_PREFIX = DEFAULT_MAJOR_VERSION + "."; public static final String DEFAULT_VERSION = DEFAULT_MAJOR_VERSION_PREFIX + DEFAULT_MINOR_VERSION; + public static final String DATE_NOW = "now"; + public static final String DATE_TODAY = "today"; + public static final String DATE_FORMAT = "yyyy-MM-dd'T'HH:mm:ss.SSSZ'Z'"; // #1386 sletellier 20110309 : solr date is return like 2011-03-09T08:06:27.593Z @@ -669,6 +673,17 @@ return result; } + /** + * Converti un objet en une date. + * Date et Calendar sont directement supporte, tous les autres types sont + * transformer en String et parser pour construire la Date. + * + * <li>Si la chaine est 'now', la date courante est utilisee avec l'heure courant + * <li>Si la chaine est 'today', la date courante est utilisee avec l'heure a 0 + * + * @param value + * @return + */ static public Date toDate(Object value) { Date result = null; if (value != null) { @@ -679,10 +694,18 @@ } else { // try to convert to Date try { - result = parseDate(value.toString()); + String v = String.valueOf(value); + if (DATE_NOW.equalsIgnoreCase(v)) { + result = new Date(); + } else if (DATE_TODAY.equalsIgnoreCase(v)) { + result = new Date(); + result = DateUtil.setMinTimeOfDay(result); + } else { + result = parseDate(v); + } } catch (ParseException eee) { if (log.isDebugEnabled()) { - log.debug("Can't parse date, i try with next parser", eee); + log.debug(String.format("Can't parse date '%s'", value), eee); } }
participants (1)
-
bpoussin@users.nuiton.org