List of usage examples for org.joda.time DateTime withMillis
public DateTime withMillis(long newMillis)
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; }