Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## net.sourceforge.jtds.jdbc
Class DateTime

    java.lang.Object
      |
      +--net.sourceforge.jtds.jdbc.DateTime

public class DateTime
extends java.lang.Object

Encapsulates Sybase date/time values and provides conversions to and from Java classes.

Version:
  $Id: DateTime.java,v 1.4 2005/07/11 13:33:30 alin_sinpalean Exp $
Author:
  Mike Hutchinson

Field Summary
`private static java.lang.ThreadLocal` | `calendar` Per thread instance of Calendar used for conversions.
`private int` | `date` The date component of the server datetime value.
`(package private) static int` | `DATE_NOT_USED` Indicates date value not used.
`private java.sql.Date` | `dateValue` Cached value of the datetime as a `java.sql.Date`.
`private short` | `day` Unpacked day value.
`private short` | `hour` Unpacked hour value.
`private short` | `millis` Unpacked millisecond value.
`private short` | `minute` Unpacked minute value.
`private short` | `month` Unpacked month value.
`private short` | `second` Unpacked second value.
`private java.lang.String` | `stringValue` Cached value of the datetime as a `String`.
`private int` | `time` The time component of the server datetime value.
`(package private) static int` | `TIME_NOT_USED` Indicates time value not used.
`private java.sql.Time` | `timeValue` Cached value of the datetime as a `java.sql.Time`.
`private java.sql.Timestamp` | `tsValue` Cached value of the datetime as a `java.sql.Timestamp`.
`private boolean` | `unpacked` Indicates server datetime values have been unpacked.
`private short` | `year` Unpacked year value.

Constructor Summary
`(package private)` | `DateTime(java.sql.Date d)` Constructs a DateTime object from a `java.sql.Date`.
`(package private)` | `DateTime(int date, int time)` Constructs a DateTime object from the two integer components of a datetime.
`(package private)` | `DateTime(short date, short time)` Constructs a DateTime object from the two short components of a smalldatetime.
`(package private)` | `DateTime(java.sql.Time t)` Constructs a DateTime object from a `java.sql.Time`.
`(package private)` | `DateTime(java.sql.Timestamp ts)` Constructs a DateTime object from a `java.sql.Timestamp`.

Method Summary
`(package private) int` | `getDate()` Retrieves the date component of a datetime value.
`(package private) int` | `getTime()` Retrieves the time component of a datetime value.
`void` | `packDate()` Converts a calendar date into days since 1900 (Sybase epoch).
`void` | `packTime()` Converts separate time components into a datetime time value.
`java.sql.Date` | `toDate()` Retrieves the current datetime value as a Date.
`java.lang.Object` | `toObject()` Retrieves the current datetime value as a Time, Date or Timestamp.
`java.lang.String` | `toString()` Retrieves the current datetime value as a String.
`java.sql.Time` | `toTime()` Retrieves the current datetime value as a Time.
`java.sql.Timestamp` | `toTimestamp()` Retrieves the current datetime value as a Timestamp.
`private void` | `unpackDateTime()` Converts a Julian datetime from the Sybase epoch of 1900-01-01 to the equivalent unpacked year/month/day etc.

Methods inherited from class java.lang.Object
`, clone, equals, finalize, getClass, hashCode, notify, notifyAll, registerNatives, wait, wait, wait`

Field Detail

### calendar

    private static java.lang.ThreadLocal calendar

  Per thread instance of Calendar used for conversions.

### DATE_NOT_USED

    static final int DATE_NOT_USED

  Indicates date value not used.

### TIME_NOT_USED

    static final int TIME_NOT_USED

  Indicates time value not used.

### date

    private int date

  The date component of the server datetime value.

### time

    private int time

  The time component of the server datetime value.

### year

    private short year

  Unpacked year value.

### month

    private short month

  Unpacked month value.

### day

    private short day

  Unpacked day value.

### hour

    private short hour

  Unpacked hour value.

### minute

    private short minute

  Unpacked minute value.

### second

    private short second

  Unpacked second value.

### millis

    private short millis

  Unpacked millisecond value.

### unpacked

    private boolean unpacked

  Indicates server datetime values have been unpacked.

### stringValue

    private java.lang.String stringValue

  Cached value of the datetime as a `String`.

### tsValue

    private java.sql.Timestamp tsValue

  Cached value of the datetime as a `java.sql.Timestamp`.

### dateValue

    private java.sql.Date dateValue

  Cached value of the datetime as a `java.sql.Date`.

### timeValue

    private java.sql.Time timeValue

  Cached value of the datetime as a `java.sql.Time`.

Constructor Detail

### DateTime

    DateTime(int date,
             int time)

  Constructs a DateTime object from the two integer components of a datetime.
  Parameters:
    `date` - server date field
    `time` - server time field

### DateTime

    DateTime(short date,
             short time)

  Constructs a DateTime object from the two short components of a smalldatetime.
  Parameters:
    `date` - server date field
    `time` - server time field

### DateTime

    DateTime(java.sql.Timestamp ts)
       throws java.sql.SQLException

  Constructs a DateTime object from a `java.sql.Timestamp`.
  Parameters:
    `ts` - `Timestamp` object representing the datetime
  Throws:
    `java.sql.SQLException` - if the date is out of range

### DateTime

    DateTime(java.sql.Time t)

  Constructs a DateTime object from a `java.sql.Time`.
  Parameters:
    `t` - `Time` object representing the datetime

### DateTime

    DateTime(java.sql.Date d)
       throws java.sql.SQLException

  Constructs a DateTime object from a `java.sql.Date`.
  Parameters:
    `d` - `Date` object representing the datetime
  Throws:
    `java.sql.SQLException` - if the Date is out of range

Method Detail

### getDate

    int getDate()

  Retrieves the date component of a datetime value.
  Returns:
    the datetime date component as an `int`

### getTime

    int getTime()

  Retrieves the time component of a datetime value.
  Returns:
    the datetime time component as an `int`

### unpackDateTime

    private void unpackDateTime()

  Converts a Julian datetime from the Sybase epoch of 1900-01-01 to the equivalent unpacked year/month/day etc. Algorithm from Fliegel, H F and van Flandern, T C (1968). Communications of the ACM, Vol 11, No 10 (October, 1968).

                 SUBROUTINE GDATE (JD, YEAR,MONTH,DAY)
           C
           C---COMPUTES THE GREGORIAN CALENDAR DATE (YEAR,MONTH,DAY)
           C   GIVEN THE JULIAN DATE (JD).
           C
                 INTEGER JD,YEAR,MONTH,DAY,I,J,K
           C
                 L= JD+68569
                 N= 4*L/146097
                 L= L-(146097*N+3)/4
                 I= 4000*(L+1)/1461001
                 L= L-1461*I/4+31
                 J= 80*L/2447
                 K= L-2447*J/80
                 L= J/11
                 J= J+2-12*L
                 I= 100*(N-49)+I+L
           C
                 YEAR= I
                 MONTH= J
                 DAY= K
           C
                 RETURN
                 END

### packDate

    public void packDate()
                  throws java.sql.SQLException

  Converts a calendar date into days since 1900 (Sybase epoch).

  Algorithm from Fliegel, H F and van Flandern, T C (1968). Communications of the ACM, Vol 11, No 10 (October, 1968).

                 INTEGER FUNCTION JD (YEAR,MONTH,DAY)
           C
           C---COMPUTES THE JULIAN DATE (JD) GIVEN A GREGORIAN CALENDAR
           C   DATE (YEAR,MONTH,DAY).
           C
                 INTEGER YEAR,MONTH,DAY,I,J,K
           C
                 I= YEAR
                 J= MONTH
                 K= DAY
           C
                 JD= K-32075+1461*(I+4800+(J-14)/12)/4+367*(J-2-(J-14)/12*12)
                2    /12-3*((I+4900+(J-14)/12)/100)/4
           C
                 RETURN
                 END

  Throws:
    `java.sql.SQLException` - if the date is outside the accepted range, 1753-9999

### packTime

    public void packTime()

  Converts separate time components into a datetime time value.

### toTimestamp

    public java.sql.Timestamp toTimestamp()

  Retrieves the current datetime value as a Timestamp.
  Returns:
    the current datetime value as a `java.sql.Timestamp`

### toDate

    public java.sql.Date toDate()

  Retrieves the current datetime value as a Date.
  Returns:
    the current datetime value as a `java.sql.Date`

### toTime

    public java.sql.Time toTime()

  Retrieves the current datetime value as a Time.
  Returns:
    the current datetime value as a `java.sql.Time`

### toObject

    public java.lang.Object toObject()

  Retrieves the current datetime value as a Time, Date or Timestamp.
  Returns:
    the current datetime value as an `java.lang.Object`

### toString

    public java.lang.String toString()

  Retrieves the current datetime value as a String.
  Overrides:
    `toString` in class `java.lang.Object`
  Returns:
    the current datetime value as a `String`

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

Generated on November 8 2005