Example usage for org.joda.time DateTime withMillis

List of usage examples for org.joda.time DateTime withMillis

Introduction

In this page you can find the example usage for org.joda.time DateTime withMillis.

Prototype

public DateTime withMillis(long newMillis) 

Source Link

Document

Returns a copy of this datetime with different millis.

Usage

From source file:com.esofthead.mycollab.core.utils.DateTimeUtils.java

License:Open Source License

public static Date convertTimeFromSystemTimezoneToUTC(long timeInMillis) {
    DateTime dt = new DateTime();
    dt = dt.withMillis(-DateTimeZone.getDefault().getOffset(timeInMillis) + timeInMillis);
    dt = dt.withZone(utcZone);//ww w. ja  v a2s .c o  m
    Date date = dt.toDate();
    return date;
}

From source file:com.esofthead.mycollab.core.utils.DateTimeUtils.java

License:Open Source License

/**
 * Convert from UTC time to default time zone of system
 * //w  w w .  jav a  2  s . c o  m
 * @param timeInMillis
 * @return
 */
public static Date convertTimeFromUTCToSystemTimezone(long timeInMillis) {
    DateTime dt = new DateTime();
    dt = dt.withMillis(DateTimeZone.getDefault().getOffset(timeInMillis) + timeInMillis);
    dt = dt.withZone(utcZone);
    Date date = dt.toDate();
    return date;
}

From source file:com.mycollab.core.utils.DateTimeUtils.java

License:Open Source License

/**
 * Convert from UTC time to default time zone of system
 *
 * @param timeInMillis//from  w  w w. j  ava  2 s  .  c o m
 * @return
 */
public static Date convertTimeFromUTCToSystemTimezone(long timeInMillis) {
    DateTime dt = new DateTime();
    dt = dt.withMillis(DateTimeZone.getDefault().getOffset(timeInMillis) + timeInMillis);
    dt = dt.withZone(utcZone);
    return dt.toDate();
}

From source file:jp.furplag.util.time.DateTimeUtils.java

License:Apache License

/**
 * {@link org.joda.time.DateTime#withMillis(long)}.
 *
 * @param instant the date-time object, null means current date-time.
 * @param dateTime structure for {@code instant}.
 * @param strictly if true, returns null when the instant is invalid.
 * @return {@link org.joda.time.DateTime#withMillis(long)}.
 *//*  w  w  w  .j a  v  a2s.  co  m*/
private static DateTime getDateTime(final Object instant, final DateTime dateTime, final boolean strictly) {
    if (strictly && instant == null)
        return null;
    if (dateTime == null)
        return getDateTime(instant, ISOChronology.getInstanceUTC(), strictly);
    if (instant == null)
        return dateTime.withMillis(DateTime.now().getMillis());
    Long millis = getMillis(instant, strictly);
    if (millis == null)
        return null;
    try {
        return dateTime.withMillis(millis);
    } catch (Exception e) {
    }
    if (strictly)
        return null;

    return dateTime.withMillis(DateTime.now().getMillis());
}

From source file:org.joda.example.time.Examples.java

License:Apache License

private void runDateTime() {
    System.out.println("DateTime");
    System.out.println("=======");
    System.out.println(/*from   www . ja v  a 2  s .c o m*/
            "DateTime stores a the date and time using millisecs from 1970-01-01T00:00:00Z internally");
    System.out.println("DateTime is immutable and thread-safe");
    System.out.println("                      in = new DateTime()");
    DateTime in = new DateTime();
    System.out.println("Millisecond time:     in.getMillis():           " + in.getMillis());
    System.out.println("ISO string version:   in.toString():            " + in.toString());
    System.out.println("ISO chronology:       in.getChronology():       " + in.getChronology());
    System.out.println("Your time zone:       in.getDateTimeZone():     " + in.getZone());
    System.out.println("Change millis:        in.withMillis(0):         " + in.withMillis(0L));
    System.out.println("");
    System.out.println("Get year:             in.getYear():             " + in.getYear());
    System.out.println("Get monthOfYear:      in.getMonthOfYear():      " + in.getMonthOfYear());
    System.out.println("Get dayOfMonth:       in.getDayOfMonth():       " + in.getDayOfMonth());
    System.out.println("...");
    System.out.println("Property access:      in.dayOfWeek().get():                   " + in.dayOfWeek().get());
    System.out.println(
            "Day of week as text:  in.dayOfWeek().getAsText():             " + in.dayOfWeek().getAsText());
    System.out.println(
            "Day as short text:    in.dayOfWeek().getAsShortText():        " + in.dayOfWeek().getAsShortText());
    System.out.println("Day in french:        in.dayOfWeek().getAsText(Locale.FRENCH):"
            + in.dayOfWeek().getAsText(Locale.FRENCH));
    System.out.println("Max allowed value:    in.dayOfWeek().getMaximumValue():       "
            + in.dayOfWeek().getMaximumValue());
    System.out.println("Min allowed value:    in.dayOfWeek().getMinimumValue():       "
            + in.dayOfWeek().getMinimumValue());
    System.out.println(
            "Copy & set to Jan:    in.monthOfYear().setCopy(1):            " + in.monthOfYear().setCopy(1));
    System.out.println(
            "Copy & add 14 months: in.monthOfYear().addCopy(14):           " + in.monthOfYear().addToCopy(14));
    System.out.println("Add 14 mnths in field:in.monthOfYear().addWrapFieldCopy(14):  "
            + in.monthOfYear().addWrapFieldToCopy(14));
    System.out.println("...");
    System.out.println("Convert to Instant:   in.toInstant():           " + in.toInstant());
    System.out.println("Convert to DateTime:  in.toDateTime():          " + in.toDateTime());
    System.out.println("Convert to MutableDT: in.toMutableDateTime():   " + in.toMutableDateTime());
    System.out.println("Convert to Date:      in.toDate():              " + in.toDate());
    System.out.println("Convert to Calendar:  in.toCalendar(Locale.UK): "
            + in.toCalendar(Locale.UK).toString().substring(0, 46));
    System.out.println("Convert to GregCal:   in.toGregorianCalendar(): "
            + in.toGregorianCalendar().toString().substring(0, 46));
    System.out.println("");
    System.out.println("                      in2 = new DateTime(in.getMillis() + 10)");
    DateTime in2 = new DateTime(in.getMillis() + 10);
    System.out.println("Equals ms and chrono: in.equals(in2):           " + in.equals(in2));
    System.out.println("Compare millisecond:  in.compareTo(in2):        " + in.compareTo(in2));
    System.out.println("Compare millisecond:  in.isEqual(in2):          " + in.isEqual(in2));
    System.out.println("Compare millisecond:  in.isAfter(in2):          " + in.isAfter(in2));
    System.out.println("Compare millisecond:  in.isBefore(in2):         " + in.isBefore(in2));
}

From source file:org.jruby.ext.date.RubyDate.java

License:LGPL

static DateTime civilDate(ThreadContext context, final int y, final int m, final int d,
        final Chronology chronology) {
    DateTime dt;
    try {//from w w w. j a va  2s.  c  o  m
        if (d >= 0) { // let d == 0 fail (raise 'invalid date')
            dt = new DateTime(y, m, d, 0, 0, chronology);
        } else {
            dt = new DateTime(y, m, 1, 0, 0, chronology);
            long ms = dt.getMillis();
            int last = chronology.dayOfMonth().getMaximumValue(ms);
            ms = chronology.dayOfMonth().set(ms, last + d + 1); // d < 0 (d == -1 -> d == 31)
            dt = dt.withMillis(ms);
        }
    } catch (IllegalArgumentException ex) {
        debug(context, "invalid date", ex);
        throw context.runtime.newArgumentError("invalid date");
    }
    return dt;
}

From source file:org.jruby.ext.date.RubyDateTime.java

License:LGPL

@JRubyMethod(name = "civil", alias = "new", meta = true, optional = 8)
public static RubyDateTime civil(ThreadContext context, IRubyObject self, IRubyObject[] args) {
    // year=-4712, month=1, mday=1,
    //  hour=0, minute=0, second=0, offset=0, start=Date::ITALY

    final int len = args.length;

    int hour = 0, minute = 0, second = 0;
    long millis = 0;
    long subMillisNum = 0, subMillisDen = 1;
    int off = 0;/*from  w w  w .j av  a  2 s. c o m*/
    long sg = ITALY;

    if (len == 8)
        sg = val2sg(context, args[7]);
    if (len >= 7)
        off = val2off(context, args[6]);

    final int year = (sg > 0) ? getYear(args[0]) : args[0].convertToInteger().getIntValue();
    final int month = getMonth(args[1]);
    final long[] rest = new long[] { 0, 1 };
    final int day = (int) getDay(context, args[2], rest);

    if (len >= 4 || rest[0] != 0) {
        hour = getHour(context, len >= 4 ? args[3] : RubyFixnum.zero(context.runtime), rest);
    }

    if (len >= 5 || rest[0] != 0) {
        minute = getMinute(context, len >= 5 ? args[4] : RubyFixnum.zero(context.runtime), rest);
    }

    if (len >= 6 || rest[0] != 0) {
        IRubyObject sec = len >= 6 ? args[5] : RubyFixnum.zero(context.runtime);
        second = getSecond(context, sec, rest);
        final long r0 = rest[0], r1 = rest[1];
        if (r0 != 0) {
            millis = (1000 * r0) / r1;
            subMillisNum = ((1000 * r0) - (millis * r1));
            subMillisDen = r1;
        }
    }

    if (hour == 24 && (minute != 0 || second != 0 || millis != 0)) {
        throw context.runtime.newArgumentError("invalid date");
    }

    final Chronology chronology = getChronology(context, sg, off);
    DateTime dt = civilDate(context, year, month, day, chronology); // hour: 0, minute: 0, second: 0

    try {
        long ms = dt.getMillis();
        ms = chronology.hourOfDay().set(ms, hour == 24 ? 0 : hour);
        ms = chronology.minuteOfHour().set(ms, minute);
        ms = chronology.secondOfMinute().set(ms, second);
        dt = dt.withMillis(ms + millis);
        if (hour == 24)
            dt = dt.plusDays(1);
    } catch (IllegalArgumentException ex) {
        debug(context, "invalid date", ex);
        throw context.runtime.newArgumentError("invalid date");
    }

    return (RubyDateTime) new RubyDateTime(context.runtime, (RubyClass) self, dt, off, sg, subMillisNum,
            subMillisDen).normalizeSubMillis();
}

From source file:org.jruby.CompatVersion.java

License:LGPL

protected static RubyTime s_mload(IRubyObject recv, RubyTime time, IRubyObject from) {
        Ruby runtime = recv.getRuntime();

        DateTime dt = new DateTime(DateTimeZone.UTC);

        byte[] fromAsBytes = null;
        fromAsBytes = from.convertToString().getBytes();
        if (fromAsBytes.length != 8) {
            throw runtime.newTypeError("marshaled time format differ");
        }//from  w ww. j  a  v a 2 s .  c o m
        int p = 0;
        int s = 0;
        for (int i = 0; i < 4; i++) {
            p |= ((int) fromAsBytes[i] & 0xFF) << (8 * i);
        }
        for (int i = 4; i < 8; i++) {
            s |= ((int) fromAsBytes[i] & 0xFF) << (8 * (i - 4));
        }
        if ((p & (1 << 31)) == 0) {
            dt = dt.withMillis(p * 1000L + s);
        } else {
            p &= ~(1 << 31);
            dt = dt.withYear(((p >>> 14) & 0xFFFF) + 1900);
            dt = dt.withMonthOfYear(((p >>> 10) & 0xF) + 1);
            dt = dt.withDayOfMonth(((p >>> 5) & 0x1F));
            dt = dt.withHourOfDay((p & 0x1F));
            dt = dt.withMinuteOfHour(((s >>> 26) & 0x3F));
            dt = dt.withSecondOfMinute(((s >>> 20) & 0x3F));
            // marsaling dumps usec, not msec
            dt = dt.withMillisOfSecond((s & 0xFFFFF) / 1000);
            dt = dt.withZone(getLocalTimeZone(runtime));
            time.setUSec((s & 0xFFFFF) % 1000);
        }
        time.setDateTime(dt);
        return time;
    }

From source file:org.jruby.CompatVersion.java

License:LGPL

private static RubyTime createTime(IRubyObject recv, IRubyObject[] args, boolean gmt) {
        Ruby runtime = recv.getRuntime();
        int len = ARG_SIZE;

        if (args.length == 10) {
            args = new IRubyObject[] { args[5], args[4], args[3], args[2], args[1], args[0], runtime.getNil() };
        } else {/*from ww w.  ja  v  a2  s  .com*/
            // MRI accepts additional wday argument which appears to be ignored.
            len = args.length;

            if (len < ARG_SIZE) {
                IRubyObject[] newArgs = new IRubyObject[ARG_SIZE];
                System.arraycopy(args, 0, newArgs, 0, args.length);
                for (int i = len; i < ARG_SIZE; i++) {
                    newArgs[i] = runtime.getNil();
                }
                args = newArgs;
                len = ARG_SIZE;
            }
        }

        if (args[0] instanceof RubyString) {
            args[0] = RubyNumeric.str2inum(runtime, (RubyString) args[0], 10, false);
        }

        int year = (int) RubyNumeric.num2long(args[0]);
        int month = 1;

        if (len > 1) {
            if (!args[1].isNil()) {
                IRubyObject tmp = args[1].checkStringType();
                if (!tmp.isNil()) {
                    String monthString = tmp.toString().toLowerCase();
                    Integer monthInt = MONTHS_MAP.get(monthString);

                    if (monthInt != null) {
                        month = monthInt;
                    } else {
                        try {
                            month = Integer.parseInt(monthString);
                        } catch (NumberFormatException nfExcptn) {
                            throw runtime.newArgumentError("Argument out of range.");
                        }
                    }
                } else {
                    month = (int) RubyNumeric.num2long(args[1]);
                }
            }
            if (1 > month || month > 12) {
                throw runtime.newArgumentError("Argument out of range: for month: " + month);
            }
        }

        int[] int_args = { 1, 0, 0, 0, 0, 0 };

        for (int i = 0; int_args.length >= i + 2; i++) {
            if (!args[i + 2].isNil()) {
                if (!(args[i + 2] instanceof RubyNumeric)) {
                    args[i + 2] = args[i + 2].callMethod(runtime.getCurrentContext(), "to_i");
                }

                long value = RubyNumeric.num2long(args[i + 2]);
                if (time_min[i] > value || value > time_max[i]) {
                    throw runtime.newArgumentError("argument out of range.");
                }
                int_args[i] = (int) value;
            }
        }

        if (0 <= year && year < 39) {
            year += 2000;
        } else if (69 <= year && year < 139) {
            year += 1900;
        }

        DateTimeZone dtz;
        if (gmt) {
            dtz = DateTimeZone.UTC;
        } else {
            dtz = getLocalTimeZone(runtime);
        }

        DateTime dt;
        // set up with min values and then add to allow rolling over
        try {
            dt = new DateTime(year, 1, 1, 0, 0, 0, 0, dtz);

            dt = dt.plusMonths(month - 1).plusDays(int_args[0] - 1).plusHours(int_args[1]).plusMinutes(int_args[2])
                    .plusSeconds(int_args[3]);
        } catch (org.joda.time.IllegalFieldValueException e) {
            throw runtime.newArgumentError("time out of range");
        }

        RubyTime time = new RubyTime(runtime, (RubyClass) recv, dt);
        // Ignores usec if 8 args (for compatibility with parsedate) or if not supplied.
        if (args.length != 8 && !args[6].isNil()) {
            int usec = int_args[4] % 1000;
            int msec = int_args[4] / 1000;

            if (int_args[4] < 0) {
                msec -= 1;
                usec += 1000;
            }
            time.dt = dt.withMillis(dt.getMillis() + msec);
            time.setUSec(usec);
        }

        time.callInit(IRubyObject.NULL_ARRAY, Block.NULL_BLOCK);
        return time;
    }

From source file:org.jruby.RubyTime.java

License:LGPL

protected static RubyTime s_mload(IRubyObject recv, RubyTime time, IRubyObject from) {
    Ruby runtime = recv.getRuntime();//  w w  w.  j  a v a2s. c  o m

    DateTime dt = new DateTime(DateTimeZone.UTC);

    byte[] fromAsBytes;
    fromAsBytes = from.convertToString().getBytes();
    if (fromAsBytes.length != 8) {
        throw runtime.newTypeError("marshaled time format differ");
    }
    int p = 0;
    int s = 0;
    for (int i = 0; i < 4; i++) {
        p |= ((int) fromAsBytes[i] & 0xFF) << (8 * i);
    }
    for (int i = 4; i < 8; i++) {
        s |= ((int) fromAsBytes[i] & 0xFF) << (8 * (i - 4));
    }
    boolean utc = false;
    if ((p & (1 << 31)) == 0) {
        dt = dt.withMillis(p * 1000L);
        time.setUSec((s & 0xFFFFF) % 1000);
    } else {
        p &= ~(1 << 31);
        utc = ((p >>> 30 & 0x1) == 0x1);
        dt = dt.withYear(((p >>> 14) & 0xFFFF) + 1900);
        dt = dt.withMonthOfYear(((p >>> 10) & 0xF) + 1);
        dt = dt.withDayOfMonth(((p >>> 5) & 0x1F));
        dt = dt.withHourOfDay((p & 0x1F));
        dt = dt.withMinuteOfHour(((s >>> 26) & 0x3F));
        dt = dt.withSecondOfMinute(((s >>> 20) & 0x3F));
        // marsaling dumps usec, not msec
        dt = dt.withMillisOfSecond((s & 0xFFFFF) / 1000);
        time.setUSec((s & 0xFFFFF) % 1000);
    }
    time.setDateTime(dt);
    if (!utc)
        time.localtime();

    from.getInstanceVariables().copyInstanceVariablesInto(time);

    // pull out nanos, offset, zone
    IRubyObject nano_num = (IRubyObject) from.getInternalVariables().getInternalVariable("nano_num");
    IRubyObject nano_den = (IRubyObject) from.getInternalVariables().getInternalVariable("nano_den");
    IRubyObject offsetVar = (IRubyObject) from.getInternalVariables().getInternalVariable("offset");
    IRubyObject zoneVar = (IRubyObject) from.getInternalVariables().getInternalVariable("zone");

    if (nano_num != null && nano_den != null) {
        long nanos = nano_num.convertToInteger().getLongValue() / nano_den.convertToInteger().getLongValue();
        time.nsec += nanos;
    }

    int offset = 0;
    if (offsetVar != null && offsetVar.respondsTo("to_int")) {
        IRubyObject oldExc = runtime.getGlobalVariables().get("$!"); // Save $!
        try {
            offset = offsetVar.convertToInteger().getIntValue() * 1000;
        } catch (RaiseException typeError) {
            runtime.getGlobalVariables().set("$!", oldExc); // Restore $!
        }
    }

    String zone = "";
    if (zoneVar != null && zoneVar.respondsTo("to_str")) {
        IRubyObject oldExc = runtime.getGlobalVariables().get("$!"); // Save $!
        try {
            zone = zoneVar.convertToString().toString();
        } catch (RaiseException typeError) {
            runtime.getGlobalVariables().set("$!", oldExc); // Restore $!
        }
    }

    time.dt = dt.withZone(getTimeZoneWithOffset(runtime, zone, offset));
    return time;
}