L
lbrtchx
Hi,
~
I am parsing some data from archived files out of Unix file system
listings
~
The thing is that I decided to store the date as a long since the
Epoch, so that people from any locales can see it accordingly by a
simple reformatting on the fly
~
But, when I parse the date data, such as "Nov 10 2003" and build a
Calendar Object:
~
System.out.println("// __ aYr: |" + aYr + "|");
System.out.println("// __ aMonth: |" + aMonth + "|");
System.out.println("// __ aDayOfMonth: |" + aDayOfMonth + "|");
// __
try{
int iYr = Integer.parseInt(aYr);
int iMnth = HMKMIx.get(aMonth.toUpperCase());
int iDay = Integer.parseInt(aDayOfMonth);
System.out.println("// __ |" + iYr + "|" + iMnth + "|" + iDay + "|");
// __
Calendar Kal = Calendar.getInstance();
Kal.set(Calendar.YEAR, iYr);
Kal.set(Calendar.MONTH, iMnth);
Kal.set(Calendar.DAY_OF_MONTH, iDay);
// __ http://java.sun.com/javase/6/docs/api/java/util/Calendar.html#time
Date Dt = Kal.getTime();
System.out.println("// __ Dt: |" + Dt + "|");
lTm = Dt.getTime();
System.out.println("// __ lTm: |" + lTm + "|");
// __
}catch(NumberFormatException NFX){
~
using:
~
HMKMIx = new HashMap<String, Integer>();
HMKMIx.put("JAN", Calendar.JANUARY);
HMKMIx.put("FEB", Calendar.FEBRUARY);
HMKMIx.put("MAR", Calendar.MARCH);
HMKMIx.put("APR", Calendar.APRIL);
HMKMIx.put("MAY", Calendar.MAY);
HMKMIx.put("JUN", Calendar.JUNE);
HMKMIx.put("JUL", Calendar.JULY);
HMKMIx.put("AUG", Calendar.AUGUST);
HMKMIx.put("SEP", Calendar.SEPTEMBER);
HMKMIx.put("OCT", Calendar.OCTOBER);
HMKMIx.put("NOV", Calendar.NOVEMBER);
HMKMIx.put("DEC", Calendar.DECEMBER);
~
I am getting inconsistent results
~
// __ |-rw-rw-r-- 1 gbnewby pg 113214 Nov 10 2003 10002.zip|
1/0/0/0/10002|
// __ aYr: |2003|
// __ aMonth: |Nov|
// __ aDayOfMonth: |10|
// __ |2003|10|10|
// __ Dt: |Mon Nov 10 04:46:19 EST 2003|
// __ lTm: |1068457579812|
// __ |10002.zip|1/0/0/0/10002|113214|gbnewby|pg|-rw-rw-r--|
1068457579812|
~
// __ |-rw-rw-r-- 1 gbnewby pg 145317 Nov 10 2003 10003.zip|
1/0/0/0/10003|
// __ aYr: |2003|
// __ aMonth: |Nov|
// __ aDayOfMonth: |10|
// __ |2003|10|10|
// __ Dt: |Mon Nov 10 04:46:19 EST 2003|
// __ lTm: |1068457579814|
// __ |10003.zip|1/0/0/0/10003|145317|gbnewby|pg|-rw-rw-r--|
1068457579814|
~
// __ |-rw-rw-r-- 1 gbnewby pg 120858 Nov 10 2003 10004.zip|
1/0/0/0/10004|
// __ aYr: |2003|
// __ aMonth: |Nov|
// __ aDayOfMonth: |10|
// __ |2003|10|10|
// __ Dt: |Mon Nov 10 04:46:19 EST 2003|
// __ lTm: |1068457579818|
// __ |10004.zip|1/0/0/0/10004|120858|gbnewby|pg|-rw-rw-r--|
1068457579818|
~
I am using a Date object in order to get the time in millis because
the calendar class doesn't give ti to you directly
~
Why on earth is that happening? Even if they are just a few
milliseconds apart it should not be happening?
~
Is it possibly, obviously a bug or another homely and unspecified
semantics from java's date/calendar/time handling?
~
Thanks
lbrtchx
~
I am parsing some data from archived files out of Unix file system
listings
~
The thing is that I decided to store the date as a long since the
Epoch, so that people from any locales can see it accordingly by a
simple reformatting on the fly
~
But, when I parse the date data, such as "Nov 10 2003" and build a
Calendar Object:
~
System.out.println("// __ aYr: |" + aYr + "|");
System.out.println("// __ aMonth: |" + aMonth + "|");
System.out.println("// __ aDayOfMonth: |" + aDayOfMonth + "|");
// __
try{
int iYr = Integer.parseInt(aYr);
int iMnth = HMKMIx.get(aMonth.toUpperCase());
int iDay = Integer.parseInt(aDayOfMonth);
System.out.println("// __ |" + iYr + "|" + iMnth + "|" + iDay + "|");
// __
Calendar Kal = Calendar.getInstance();
Kal.set(Calendar.YEAR, iYr);
Kal.set(Calendar.MONTH, iMnth);
Kal.set(Calendar.DAY_OF_MONTH, iDay);
// __ http://java.sun.com/javase/6/docs/api/java/util/Calendar.html#time
Date Dt = Kal.getTime();
System.out.println("// __ Dt: |" + Dt + "|");
lTm = Dt.getTime();
System.out.println("// __ lTm: |" + lTm + "|");
// __
}catch(NumberFormatException NFX){
~
using:
~
HMKMIx = new HashMap<String, Integer>();
HMKMIx.put("JAN", Calendar.JANUARY);
HMKMIx.put("FEB", Calendar.FEBRUARY);
HMKMIx.put("MAR", Calendar.MARCH);
HMKMIx.put("APR", Calendar.APRIL);
HMKMIx.put("MAY", Calendar.MAY);
HMKMIx.put("JUN", Calendar.JUNE);
HMKMIx.put("JUL", Calendar.JULY);
HMKMIx.put("AUG", Calendar.AUGUST);
HMKMIx.put("SEP", Calendar.SEPTEMBER);
HMKMIx.put("OCT", Calendar.OCTOBER);
HMKMIx.put("NOV", Calendar.NOVEMBER);
HMKMIx.put("DEC", Calendar.DECEMBER);
~
I am getting inconsistent results
~
// __ |-rw-rw-r-- 1 gbnewby pg 113214 Nov 10 2003 10002.zip|
1/0/0/0/10002|
// __ aYr: |2003|
// __ aMonth: |Nov|
// __ aDayOfMonth: |10|
// __ |2003|10|10|
// __ Dt: |Mon Nov 10 04:46:19 EST 2003|
// __ lTm: |1068457579812|
// __ |10002.zip|1/0/0/0/10002|113214|gbnewby|pg|-rw-rw-r--|
1068457579812|
~
// __ |-rw-rw-r-- 1 gbnewby pg 145317 Nov 10 2003 10003.zip|
1/0/0/0/10003|
// __ aYr: |2003|
// __ aMonth: |Nov|
// __ aDayOfMonth: |10|
// __ |2003|10|10|
// __ Dt: |Mon Nov 10 04:46:19 EST 2003|
// __ lTm: |1068457579814|
// __ |10003.zip|1/0/0/0/10003|145317|gbnewby|pg|-rw-rw-r--|
1068457579814|
~
// __ |-rw-rw-r-- 1 gbnewby pg 120858 Nov 10 2003 10004.zip|
1/0/0/0/10004|
// __ aYr: |2003|
// __ aMonth: |Nov|
// __ aDayOfMonth: |10|
// __ |2003|10|10|
// __ Dt: |Mon Nov 10 04:46:19 EST 2003|
// __ lTm: |1068457579818|
// __ |10004.zip|1/0/0/0/10004|120858|gbnewby|pg|-rw-rw-r--|
1068457579818|
~
I am using a Date object in order to get the time in millis because
the calendar class doesn't give ti to you directly
~
Why on earth is that happening? Even if they are just a few
milliseconds apart it should not be happening?
~
Is it possibly, obviously a bug or another homely and unspecified
semantics from java's date/calendar/time handling?
~
Thanks
lbrtchx