Example usage for org.joda.time MutableDateTime parse

List of usage examples for org.joda.time MutableDateTime parse

Introduction

In this page you can find the example usage for org.joda.time MutableDateTime parse.

Prototype

public static MutableDateTime parse(String str, DateTimeFormatter formatter) 

Source Link

Document

Parses a MutableDateTime from the specified string using a formatter.

Usage

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;
}