Hi Petr,

On Tue, 16 Oct 2018 at 21:25, Petr Fischer via Pharo-users
<pharo-users@lists.pharo.org> wrote:
>
> My problem - use Dates as Dictionary keys - shortly:
>
> d1 := Date today translateToUTC.
> d2 := Date today.
>
> d1 = d2. (true!)

Which timezone are you in?

CEDT (UTC+0200) gives false for this.

Date is implemented primarily as a timespan, so days in different
timezones are considered different.  If you do:

| d1 d2 |

d1 := Date today translateTo: (TimeZone abbreviated: 'UTC') offset.
d2 := Date today translateTo: (TimeZone abbreviated: 'EST') offset.

{ d1 = d2.  d1 equals: d2 }


You can see the difference.

Of course, this doesn't help with using Date as a key in a dictionary.
Probably your best option is to look at Sven's excellent ZTimezone
package (although I haven't tested it in this scenario).

I can't find the repository right now (I think Sven moved it to github).  Sven?

Cheers,
Alistair



> d := Dictionary new.
> d at: d1 put: 1.
>
> d at: d1. (ok)
> d at: d2. (bad - key not found)
>
> ---
>
> pf
>

Reply via email to