Calendar and Date puzzling question...

Discussion in 'Java' started by adam.balgach@gmail.com, Oct 17, 2006.

  1. Guest

    So I am trying to take a Date object and convert it into a calendar for
    use in my application, the code looks like: The string _s comes in in
    the format YYYY-MM-DD this i am 100% sure of



    public CalendarInfo(String _s) {
    DateFormat _formatter = new SimpleDateFormat("yyyy-MM-dd");
    try {
    _date = _formatter.parse(_s);
    _calendar = new GregorianCalendar();
    _calendar.clear();
    _calendar.setTime(_date);
    _log.log_error(_class, "CalendarInfo():
    "+_calendar.toString());
    _log.log_warning(_class, ""+_calendar.YEAR);
    _log.log_warning(_class, ""+_calendar.MONTH);
    _log.log_warning(_class,
    ""+_calendar.DAY_OF_MONTH);
    }
    catch (java.text.ParseException Ex) {
    _log.log_error(_class, "CalendarInfo(): Bad Parse: "+Ex);
    }
    }



    So what i am doing is passing in a string formatted as "2006-10-12" and
    converting it to a calendar and this is the results i get:

    [ 10-17-2006 15:11:41 Calendar.CalendarInfo ] ERROR: CalendarInfo():
    java.util.GregorianCalendar[time=1160625600000,areFieldsSet=true,areAllFieldsSet=true,lenient=true,zone=sun.util.calendar.ZoneInfo[id="America/New_York",offset=-18000000,dstSavings=3600000,useDaylight=true,transitions=235,lastRule=java.util.SimpleTimeZone[id=America/New_York,offset=-18000000,dstSavings=3600000,useDaylight=true,startYear=0,startMode=3,startMonth=2,startDay=8,startDayOfWeek=1,startTime=7200000,startTimeMode=0,endMode=3,endMonth=10,endDay=1,endDayOfWeek=1,endTime=7200000,endTimeMode=0]],firstDayOfWeek=1,minimalDaysInFirstWeek=1,ERA=1,YEAR=2006,MONTH=9,WEEK_OF_YEAR=41,WEEK_OF_MONTH=2,DAY_OF_MONTH=12,DAY_OF_YEAR=285,DAY_OF_WEEK=5,DAY_OF_WEEK_IN_MONTH=2,AM_PM=0,HOUR=0,HOUR_OF_DAY=0,MINUTE=0,SECOND=0,MILLISECOND=0,ZONE_OFFSET=-18000000,DST_OFFSET=3600000]
    [ 10-17-2006 15:11:41 Calendar.CalendarInfo ] WARNING: 5
    [ 10-17-2006 15:11:41 Calendar.CalendarInfo ] WARNING: 2
    [ 10-17-2006 15:11:41 Calendar.CalendarInfo ] WARNING: 1


    as you can see from the _calendar.toString() call, it clearly shows the
    object year=2006, month=9, day=12
    but when i call the direct Calendar.YEAR/MONTH/DAY_OF_MONTH i get
    these weird results.

    what is up with that? anyone have any clue? Thanks!
     
    , Oct 17, 2006
    #1
    1. Advertising

  2. wrote:
    > So I am trying to take a Date object and convert it into a calendar for
    > use in my application, the code looks like: The string _s comes in in
    > the format YYYY-MM-DD this i am 100% sure of
    >
    >
    >
    > public CalendarInfo(String _s) {
    > DateFormat _formatter = new SimpleDateFormat("yyyy-MM-dd");
    > try {
    > _date = _formatter.parse(_s);
    > _calendar = new GregorianCalendar();
    > _calendar.clear();
    > _calendar.setTime(_date);
    > _log.log_error(_class, "CalendarInfo():
    > "+_calendar.toString());
    > _log.log_warning(_class, ""+_calendar.YEAR);
    > _log.log_warning(_class, ""+_calendar.MONTH);
    > _log.log_warning(_class,
    > ""+_calendar.DAY_OF_MONTH);
    > }
    > catch (java.text.ParseException Ex) {
    > _log.log_error(_class, "CalendarInfo(): Bad Parse: "+Ex);
    > }
    > }
    >
    >
    >
    > So what i am doing is passing in a string formatted as "2006-10-12" and
    > converting it to a calendar and this is the results i get:
    >
    > [ 10-17-2006 15:11:41 Calendar.CalendarInfo ] ERROR: CalendarInfo():
    > java.util.GregorianCalendar[time=1160625600000,areFieldsSet=true,areAllFieldsSet=true,lenient=true,zone=sun.util.calendar.ZoneInfo[id="America/New_York",offset=-18000000,dstSavings=3600000,useDaylight=true,transitions=235,lastRule=java.util.SimpleTimeZone[id=America/New_York,offset=-18000000,dstSavings=3600000,useDaylight=true,startYear=0,startMode=3,startMonth=2,startDay=8,startDayOfWeek=1,startTime=7200000,startTimeMode=0,endMode=3,endMonth=10,endDay=1,endDayOfWeek=1,endTime=7200000,endTimeMode=0]],firstDayOfWeek=1,minimalDaysInFirstWeek=1,ERA=1,YEAR=2006,MONTH=9,WEEK_OF_YEAR=41,WEEK_OF_MONTH=2,DAY_OF_MONTH=12,DAY_OF_YEAR=285,DAY_OF_WEEK=5,DAY_OF_WEEK_IN_MONTH=2,AM_PM=0,HOUR=0,HOUR_OF_DAY=0,MINUTE=0,SECOND=0,MILLISECOND=0,ZONE_OFFSET=-18000000,DST_OFFSET=3600000]
    > [ 10-17-2006 15:11:41 Calendar.CalendarInfo ] WARNING: 5
    > [ 10-17-2006 15:11:41 Calendar.CalendarInfo ] WARNING: 2
    > [ 10-17-2006 15:11:41 Calendar.CalendarInfo ] WARNING: 1
    >
    >
    > as you can see from the _calendar.toString() call, it clearly shows the
    > object year=2006, month=9, day=12
    > but when i call the direct Calendar.YEAR/MONTH/DAY_OF_MONTH i get
    > these weird results.
    >
    > what is up with that? anyone have any clue? Thanks!
    >


    RTFM :) - try calendar.get(Calendar.YEAR) et al.
    Admittely, this is one of Suns more bizarre APIS, so this is easy to
    dismiss for first time users...

    HTH
    Andreas
     
    Andreas Wollschlaeger, Oct 17, 2006
    #2
    1. Advertising

  3. Guest

    thanks!

    never thought to try that.


    Andreas Wollschlaeger wrote:
    > wrote:
    > > So I am trying to take a Date object and convert it into a calendar for
    > > use in my application, the code looks like: The string _s comes in in
    > > the format YYYY-MM-DD this i am 100% sure of
    > >
    > >
    > >
    > > public CalendarInfo(String _s) {
    > > DateFormat _formatter = new SimpleDateFormat("yyyy-MM-dd");
    > > try {
    > > _date = _formatter.parse(_s);
    > > _calendar = new GregorianCalendar();
    > > _calendar.clear();
    > > _calendar.setTime(_date);
    > > _log.log_error(_class, "CalendarInfo():
    > > "+_calendar.toString());
    > > _log.log_warning(_class, ""+_calendar.YEAR);
    > > _log.log_warning(_class, ""+_calendar.MONTH);
    > > _log.log_warning(_class,
    > > ""+_calendar.DAY_OF_MONTH);
    > > }
    > > catch (java.text.ParseException Ex) {
    > > _log.log_error(_class, "CalendarInfo(): Bad Parse: "+Ex);
    > > }
    > > }
    > >
    > >
    > >
    > > So what i am doing is passing in a string formatted as "2006-10-12" and
    > > converting it to a calendar and this is the results i get:
    > >
    > > [ 10-17-2006 15:11:41 Calendar.CalendarInfo ] ERROR: CalendarInfo():
    > > java.util.GregorianCalendar[time=1160625600000,areFieldsSet=true,areAllFieldsSet=true,lenient=true,zone=sun.util.calendar.ZoneInfo[id="America/New_York",offset=-18000000,dstSavings=3600000,useDaylight=true,transitions=235,lastRule=java.util.SimpleTimeZone[id=America/New_York,offset=-18000000,dstSavings=3600000,useDaylight=true,startYear=0,startMode=3,startMonth=2,startDay=8,startDayOfWeek=1,startTime=7200000,startTimeMode=0,endMode=3,endMonth=10,endDay=1,endDayOfWeek=1,endTime=7200000,endTimeMode=0]],firstDayOfWeek=1,minimalDaysInFirstWeek=1,ERA=1,YEAR=2006,MONTH=9,WEEK_OF_YEAR=41,WEEK_OF_MONTH=2,DAY_OF_MONTH=12,DAY_OF_YEAR=285,DAY_OF_WEEK=5,DAY_OF_WEEK_IN_MONTH=2,AM_PM=0,HOUR=0,HOUR_OF_DAY=0,MINUTE=0,SECOND=0,MILLISECOND=0,ZONE_OFFSET=-18000000,DST_OFFSET=3600000]
    > > [ 10-17-2006 15:11:41 Calendar.CalendarInfo ] WARNING: 5
    > > [ 10-17-2006 15:11:41 Calendar.CalendarInfo ] WARNING: 2
    > > [ 10-17-2006 15:11:41 Calendar.CalendarInfo ] WARNING: 1
    > >
    > >
    > > as you can see from the _calendar.toString() call, it clearly shows the
    > > object year=2006, month=9, day=12
    > > but when i call the direct Calendar.YEAR/MONTH/DAY_OF_MONTH i get
    > > these weird results.
    > >
    > > what is up with that? anyone have any clue? Thanks!
    > >

    >
    > RTFM :) - try calendar.get(Calendar.YEAR) et al.
    > Admittely, this is one of Suns more bizarre APIS, so this is easy to
    > dismiss for first time users...
    >
    > HTH
    > Andreas
     
    , Oct 17, 2006
    #3
  4. Daniel Dyer Guest

    On Tue, 17 Oct 2006 20:54:57 +0100, Andreas Wollschlaeger
    <postmaster@1.0.0.172.in-addr.arpa> wrote:

    > RTFM :) - try calendar.get(Calendar.YEAR) et al.
    > Admittely, this is one of Suns more bizarre APIS, so this is easy to
    > dismiss for first time users...


    I believe we have IBM to thank for this particular contribution to the
    standard libraries.

    Dan.

    --
    Daniel Dyer
    http://www.uncommons.org
     
    Daniel Dyer, Oct 17, 2006
    #4
  5. Tom Forsmo Guest

    Daniel Dyer wrote:
    > On Tue, 17 Oct 2006 20:54:57 +0100, Andreas Wollschlaeger
    > <postmaster@1.0.0.172.in-addr.arpa> wrote:
    >
    >> RTFM :) - try calendar.get(Calendar.YEAR) et al.
    >> Admittely, this is one of Suns more bizarre APIS, so this is easy to
    >> dismiss for first time users...

    >
    > I believe we have IBM to thank for this particular contribution to the
    > standard libraries.


    I hate dates and calendars in Java. I remember having to deal with dates
    and calendars on a project a few months ago. I almost never work with
    dates, so I didn't remember much about it. I had to go back to the java
    book and read up on it because the api is really badly designed. And
    even then it took me some extra time to actually get it working correctly.

    tom
     
    Tom Forsmo, Oct 18, 2006
    #5
    1. Advertising

Want to reply to this thread or ask your own question?

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. Shevek
    Replies:
    3
    Views:
    6,120
    Shevek
    Jun 23, 2004
  2. Peter Grison

    Date, date date date....

    Peter Grison, May 28, 2004, in forum: Java
    Replies:
    10
    Views:
    3,361
    Michael Borgwardt
    May 30, 2004
  3. James
    Replies:
    5
    Views:
    440
    Eric Sosman
    Aug 31, 2004
  4. Shevek
    Replies:
    0
    Views:
    424
    Shevek
    Jun 23, 2004
  5. Replies:
    0
    Views:
    212
Loading...

Share This Page