[squeak-dev] TimeStamp offsets
Levente Uzonyi
leves at caesar.elte.hu
Mon Apr 2 15:59:51 UTC 2018
Don't use TimeStamp. I see several issues which break your snippet:
1) #printOn: and #storeOn: ignore time zone information (offset).
2) Class side #readFrom: ignores time zone information (offset).
3) Class side #readFrom: can not fully parse the output of #storeOn:. It
seems to only work by accident.
4) It's a subclass of DateAndTime, but it seems to add noting generally
useful. Based on the class comment, it has the same purpose as
DateAndTime, but that's not the case.
So, use DateAndTime instead:
| t1 t2 s |
t1 := DateAndTime now.
s := String streamContents: [:stream | t1 storeOn: stream ].
t2 := Compiler evaluate: s.
{ t1 offset. t2 offset. t1 = t2 } "==> {0:02:00:00 . 0:02:00:00 . true}"
Levente
On Mon, 2 Apr 2018, Tim Johnson wrote:
> Hi all,
> I noticed the following:
>
> | t1 t2 s |
> t1 := TimeStamp now.
> s := String streamContents: [:stream | t1 storeOn: stream ].
> t2 := TimeStamp readFrom: s readStream.
> { t1 offset. t2 offset. t1 = t2 } printIt -> {-0:07:00:00 . 0:00:00:00 . false}
>
> A web search turned up this thread from 2017:
>
> http://forum.world.st/DateAndTime-offset-just-bit-me-td4938463.html
>
> I’m wondering if there has been any resolution or if the situation is the same: I should try the fixes from UTCDateAndTime.
>
> Happy to write a test if this is worth the effort.
>
> Thanks,
> Tim
>
>
>
>
More information about the Squeak-dev
mailing list
|