|
TrueZIP 6.8.2 | ||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||
java.lang.Objectde.schlichtherle.util.zip.DateTimeConverter
public abstract class DateTimeConverter
Converts Java time values to DOS date/time values and vice versa. This class has been introduced in order to enhance interoperability between different flavours of the ZIP file format specification when converting date/time from the serialized DOS format in a ZIP file to the local system time, which is represented by a UNIX-like encoding by the Java API.
This class is thread-safe.
| Field Summary | |
|---|---|
private ThreadLocal |
calendar
|
static DateTimeConverter |
JAR
This instance applies the schedule for Daylight Saving Time (DST), i.e. all time conversions will apply DST where appropriate to a particular date. |
(package private) static long |
MIN_DOS_TIME
Smallest supported DOS date/time value in a ZIP file, which is January 1st, 1980 AD 00:00:00 local time. |
static DateTimeConverter |
ZIP
This instance ignores the schedule for Daylight Saving Time (DST), i.e. all time conversions will use the same raw offset and current DST savings, regardless of whether DST savings should be applied to a particular date or not. |
| Constructor Summary | |
|---|---|
DateTimeConverter()
|
|
| Method Summary | |
|---|---|
protected abstract TimeZone |
createTimeZone()
Returns a new timezone to use for date/time conversion. |
private Calendar |
getCalendar()
Returns a thread local Calendar instance for the
date/time conversion which has its timezone set to the return value
of createTimeZone(). |
protected abstract boolean |
roundUp(long jTime)
Returns whether a Java time should be rounded up or down to the next two second interval when converting it to a DOS date/time. |
(package private) long |
toDosTime(long jTime)
Converts a Java time value to a DOS date/time value. |
(package private) long |
toJavaTime(long dTime)
Converts a DOS date/time value to a Java time value. |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Field Detail |
|---|
static final long MIN_DOS_TIME
public static final DateTimeConverter JAR
This behaviour provides best interoperability with:
jar utility
and java.util.zip packageunzip
public static final DateTimeConverter ZIP
This behavior provides best interoperability with:
private final ThreadLocal calendar
getCalendar()| Constructor Detail |
|---|
public DateTimeConverter()
| Method Detail |
|---|
final long toDosTime(long jTime)
roundUp(long).
If the Java time value is earlier than January 1st,
1980 AD 00:00:00 local time, then this value is returned instead.
This method uses a Calendar for the date/time conversion
which has its timezone set to the return value of
createTimeZone().
jTime - The number of milliseconds since midnight, January 1st,
1970 AD UTC (called the epoch alias Java time).
RuntimeException - If jTime is negative
or later than 2107 AD.toJavaTime(long),
createTimeZone()final long toJavaTime(long dTime)
This method uses a Calendar for the date/time conversion
which has its timezone set to the return value of
createTimeZone().
If assertions are enabled,
Calendard.setLenient(false)
is called in order to throw a RuntimeException
when parsing illegal DOS date/time field values.
This can be used in order to detect bogus ZIP archive files created
by third party tools.
If assertions are disabled however,
Calendard.setLenient(true)
is called in order to adjust illegal DOS date/time field values
by overflowing them into their adjacent fields.
This can be used in order to read bogus ZIP archive files created
by third party tools.
However, the returned Java time may differ from its intended value at
the time of the creation of the ZIP archive file and when converting
it back again, the resulting DOS date/time will not be the same as
dTime.
Hence, interoperability is negatively affected in this case.
dTime - The DOS date/time value.
RuntimeException - If dTime is earlier
than 1980 AD
or greater than 0xffffffffL
or holds an illegal DOS date/time field combination
and assertions are enabled.toDosTime(long),
createTimeZone()private Calendar getCalendar()
Calendar instance for the
date/time conversion which has its timezone set to the return value
of createTimeZone().
Calendar instance.protected abstract TimeZone createTimeZone()
rules.
null.protected abstract boolean roundUp(long jTime)
jTime - The number of milliseconds since midnight, January 1st,
1970 AD UTC (called the epoch alias Java time).
yes for round-up, no for round-down.
|
TrueZIP 6.8.2 | ||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||