List of usage examples for org.joda.time MutableDateTime parse
public static MutableDateTime parse(String str, DateTimeFormatter formatter)
From source file:it.d4nguard.rgrpg.util.dynacast.adapters.DateTimeAdapter.java
License:Open Source License
/** * {@inheritDoc}// ww w . j av a2 s. c o m */ @Override public ReadableInstant adapt(String value) { // value is a string formatted as: "07/04/1987[dd/MM/yyyy]" String date = ""; DateTimeFormatter fmt; Triplet<String, String, String> tri = StringUtils.getBetween(value, '[', ']'); date = tri.getLeft(); if (tri.hasCenter()) fmt = DateTimeFormat.forPattern(tri.getCenter()); else fmt = ISODateTimeFormat.localDateOptionalTimeParser(); fmt = fmt.withLocale(Locale.getDefault()); if (getType().equals(DateTime.class)) return DateTime.parse(date, fmt); else if (getType().equals(DateMidnight.class)) return DateMidnight.parse(date, fmt); else if (getType().equals(Instant.class)) return Instant.parse(date, fmt); else if (getType().equals(MutableDateTime.class)) return MutableDateTime.parse(date, fmt); else throw new UnsupportedOperationException("type"); }
From source file:jais.messages.StaticAndVoyageRelatedData.java
License:Apache License
/** * * @return/*from w w w . ja va 2 s. co m*/ */ public MutableDateTime getETA() { StringBuilder eta = new StringBuilder(); MutableDateTime dt = MutableDateTime.now(); int year = dt.getYear(); int month = dt.getMonthOfYear(); if (_month > 0) { // properly formatted month if (_month < 10) { eta.append("0").append(_month); } else if (_month > 12) { eta.append("12"); _month = 12; // use this to validate the days later } else { eta.append(_month); } eta.append("/"); // assume next year if (_month < month) { year++; } // prepend datetime string with YYYY/ eta.insert(0, year).insert(4, "/"); // recreate the Calendar object based on the validated month dt = new MutableDateTime(year, _month, 1, 0, 0, 0, 0, DateTimeZone.UTC); // Get the number of days in that month int daysInMonth = dt.monthOfYear().getMaximumValue(); // properly formatted day if (_day < 1) { eta.append("01"); } else if (_day < 10) { eta.append("0").append(_day); } else if (_day >= daysInMonth) { eta.append(daysInMonth); } else { eta.append(_day); } eta.append(" "); // properly formatted hour if (_hour < 1) { eta.append("00"); } else if (_hour < 10) { eta.append("0").append(_hour); } else if (_hour >= 24) { eta.append(00); } else { eta.append(_hour); } eta.append(":"); // properly formatted minute if (_minute < 1 || _minute > 59) { eta.append("00"); } else if (_minute < 10) { eta.append("0").append(_minute); } else { eta.append(_minute); } } else { // default to epoch if month is invalid eta.append("1970/01/01 00:00"); } try { dt = MutableDateTime.parse(eta.toString(), ETA_FORMATTER); } catch (Exception e) { LOG.warn("Invalid ETA, setting to epoch"); dt = MutableDateTime.parse("1970/01/01 00:00", ETA_FORMATTER); } return dt; }