VA 8.5.2 – Daylight Saving Time

Now we have it. The relase 8.5.2 is out and now with the long awaiting Timezone support everything is fine ….

… installed 8.5.2 and

DateAndTime now printString -> 2012-09-18T20:45:20.939+01:00

Pretty cool and – eh wrong for my country: Germany. The correct answer should be:


But this is only faulty for the next 4 weeks – after that the error is gone again and until March 2013 – well then with 8.5.3 the error might get fixed …

This entry was posted in Smalltalk. Bookmark the permalink.

5 Responses to VA 8.5.2 – Daylight Saving Time

  1. schrievkrom says:

    After searching for the reason for this: the VA method to recognize local time zone names just seems to work on operating systems with English as the main language.

    Internally VA helds a dictionary of timezones in english, but at least Windows returns the name of the timezone in the main operating system language (here: German).

    Therefore it will never find a suitable timezone name and then it builds a default timezone information based on the offset from UTC.

    This will give you a default timezone, but this will not give you the information if DST is active in this timezone and country.

    Then it comes to that DateAndTime>>primitiveSystemOffset method, which still returns a wrong value and then you get a wrong timezone. Therefore my changes for 8.5 are still useable here.

    You can force VA to use a specific timezone via:

    EsTimeZoneDatabase singleton defaultLocation: ‘Europe/Berlin’

    or if you have the ICU package installed:

    EsTimeZoneDatabase singleton defaultLocation: UCalendar getDefaultTimeZone

    then VA is happy again.

  2. schrievkrom says:

    The good thing is, that in that timezone-code error messages are spread everywhere and actually they DO point to this problem – but log4s is NOT enabled for timeZone error messages after installation. They are disabled. Actually the whole log4s is disabled – because no appender has been defined by default ……

    As the product documentation stated: you have to define the following section

    consoleAppender=timeZones, All, EsPatternLayout, ‘%-15d %c %-5p %l %16m’

    in your abt.ini file to produce actually outputs in your console output concerning TimeZone errors.

    Well then it should produce the output, if at least this little nasty bug I mention in my posting ( whould have been fixed from 8.5.1 to 8.5.2 (by the way: Case INST49517): console output is not working under Windows and therefore all error messages are printing to /dev/null.

    • schrievkrom says:

      To make the whole stuff working:

      * add the section (mentioned above) to your abt.ini

      * execute the following code:

      | tAppender |
      (tAppender := (EsLogManager loggerNamed: ‘timeZones’)
      getAppender: ‘Console’) notNil
      ifTrue:[ tAppender stream: Transcript ]

      * execute the following code (which sets the time zone based on your OS infos)

      self setTimeZoneFromOS

      and you get the error messages in your Transcript window:

      2012-09-18 23:42:57,128 timeZones WARN EsTimeZoneDatabase class>>setTimeZoneFromOS Olson table has no entry for Windows time zone named Mitteleuropäische Zeit
      2012-09-18 23:42:57,137 timeZones INFO EsTimeZoneDatabase class>>logSettingTimeZoneTo: setting timezone to Tz+01:00

      • schrievkrom says:

        Or as Instantiation support mentioned:

        Add the three lines to your abt.ini file and start your image with “-lCON” and you get a console window (the parameter is a small L), actually a feature (“CON”) I was not aware of.

  3. Pingback: VA ST and its support for Timezones | Joachims Small World

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s