Instant.java 3.17 KB
package org.joda.time;

import java.io.Serializable;
import org.joda.convert.FromString;
import org.joda.time.base.AbstractInstant;
import org.joda.time.chrono.ISOChronology;
import org.joda.time.convert.ConverterManager;
import org.joda.time.convert.InstantConverter;
import org.joda.time.format.DateTimeFormatter;
import org.joda.time.format.ISODateTimeFormat;

public final class Instant
  extends AbstractInstant
  implements Serializable, ReadableInstant
{
  private static final long serialVersionUID = 3299096530934209741L;
  private final long a;
  
  public Instant()
  {
    this.a = DateTimeUtils.currentTimeMillis();
  }
  
  public Instant(long paramLong)
  {
    this.a = paramLong;
  }
  
  public Instant(Object paramObject)
  {
    this.a = ConverterManager.getInstance().getInstantConverter(paramObject).getInstantMillis(paramObject, ISOChronology.getInstanceUTC());
  }
  
  public static Instant now()
  {
    return new Instant();
  }
  
  @FromString
  public static Instant parse(String paramString)
  {
    return parse(paramString, ISODateTimeFormat.dateTimeParser());
  }
  
  public static Instant parse(String paramString, DateTimeFormatter paramDateTimeFormatter)
  {
    return paramDateTimeFormatter.parseDateTime(paramString).toInstant();
  }
  
  public final Chronology getChronology()
  {
    return ISOChronology.getInstanceUTC();
  }
  
  public final long getMillis()
  {
    return this.a;
  }
  
  public final Instant minus(long paramLong)
  {
    return withDurationAdded(paramLong, -1);
  }
  
  public final Instant minus(ReadableDuration paramReadableDuration)
  {
    return withDurationAdded(paramReadableDuration, -1);
  }
  
  public final Instant plus(long paramLong)
  {
    return withDurationAdded(paramLong, 1);
  }
  
  public final Instant plus(ReadableDuration paramReadableDuration)
  {
    return withDurationAdded(paramReadableDuration, 1);
  }
  
  public final DateTime toDateTime()
  {
    return new DateTime(getMillis(), ISOChronology.getInstance());
  }
  
  @Deprecated
  public final DateTime toDateTimeISO()
  {
    return toDateTime();
  }
  
  public final Instant toInstant()
  {
    return this;
  }
  
  public final MutableDateTime toMutableDateTime()
  {
    return new MutableDateTime(getMillis(), ISOChronology.getInstance());
  }
  
  @Deprecated
  public final MutableDateTime toMutableDateTimeISO()
  {
    return toMutableDateTime();
  }
  
  public final Instant withDurationAdded(long paramLong, int paramInt)
  {
    if ((paramLong == 0L) || (paramInt == 0)) {
      return this;
    }
    return withMillis(getChronology().add(getMillis(), paramLong, paramInt));
  }
  
  public final Instant withDurationAdded(ReadableDuration paramReadableDuration, int paramInt)
  {
    if ((paramReadableDuration == null) || (paramInt == 0)) {
      return this;
    }
    return withDurationAdded(paramReadableDuration.getMillis(), paramInt);
  }
  
  public final Instant withMillis(long paramLong)
  {
    if (paramLong == this.a) {
      return this;
    }
    return new Instant(paramLong);
  }
}


/* Location:              /home/merong/decompile/hackery-dex2jar.jar!/org/joda/time/Instant.class
 * Java compiler version: 6 (50.0)
 * JD-Core Version:       0.7.1
 */