[squeak-dev] The Trunk: Chronology-Core-dtl.80.mcz

christoph.thiede at student.hpi.uni-potsdam.de christoph.thiede at student.hpi.uni-potsdam.de
Mon Nov 28 15:09:45 UTC 2022


Note for future self: This is a breaking change that should be documented in the next release notes. :-)

Best,
Christoph

On 2022-09-06T16:03:35+00:00, commits at source.squeak.org wrote:

> David T. Lewis uploaded a new version of Chronology-Core to project The Trunk:
> http://source.squeak.org/trunk/Chronology-Core-dtl.80.mcz
> 
> ==================== Summary ====================
> 
> Name: Chronology-Core-dtl.80
> Author: dtl
> Time: 19 May 2022, 12:03:05.720962 pm
> UUID: 1b1b97c4-bc35-408d-b548-f0d0376a0808
> Ancestors: Chronology-Core-dtl.79
> 
> Change DateAndTime>>offset: to be compliant with the ANSI draft spec. The offset: method should answer an instance equivalent to the receiver, where equivalent means having the same UTC time.
> 
> Let #offset: adopt the prior behavior of #utcOffset: and let #utcOffset: be a compatibility synonym for #offset:. Add #asLocalAt: to the squeak protocol and let it implement the prior behavior of #offset: Change existing code and tests to use #asLocalAt: but otherwise retain existing behavior.
> 
> Issue reported at https://github.com/squeak-smalltalk/squeak-object-memory/issues/23
> 
> =============== Diff against Chronology-Core-dtl.79 ===============
> 
> Item was added:
> + ----- Method: DateAndTime>>asLocalAt: (in category 'squeak protocol') -----
> + asLocalAt: anOffset
> + 	"Answer a DateAndTime for a different time zone offset that has the same
> + 	year, month, day, hour, minute, and second as this instance, and with
> + 	printString that matches except for time zone offset."
> + 
> + 	| newOffset newMicros |
> + 	newOffset := anOffset asDuration asSeconds.
> + 	newMicros := localOffsetSeconds - newOffset * 1000000 + utcMicroseconds.
> + 	^ self class utcMicroseconds: newMicros offset: newOffset
> + !
> 
> Item was changed:
>   ----- Method: DateAndTime>>offset: (in category 'ansi protocol') -----
>   offset: anOffset
> + 	"Answer a <DateAndTime> equivalent to the receiver but with its local time 
> + 	being offset from UTC by offset.
> - 	"Answer a DateAndTime for a different time zone offset that has the same
> - 	year, month, day, hour, minute, and second as this instance, and with
> - 	printString that matches except for time zone offset."
>   
> + 	See asLocalAt: for the earlier behavior of this method."
> + 
> + 	^ self class
> + 		utcMicroseconds: utcMicroseconds
> + 		offset: anOffset asDuration asSeconds!
> - 	| newOffset newMicros |
> - 	newOffset := anOffset asDuration asSeconds.
> - 	newMicros := localOffsetSeconds - newOffset * 1000000 + utcMicroseconds.
> - 	^ self class utcMicroseconds: newMicros offset: newOffset
> - !
> 
> Item was changed:
>   ----- Method: DateAndTime>>utcOffset: (in category 'squeak protocol') -----
>   utcOffset: anOffset 
> + 	"Compatiblity. Answer a DateAndTime equivalent to the receiver but offset from UTC by anOffset."
> + 
> + 	^ self offset: anOffset!
> - 	"Answer a DateAndTime equivalent to the receiver but offset from UTC by anOffset"
> - 	^ self class
> - 		utcMicroseconds: utcMicroseconds
> - 		offset: anOffset asDuration asSeconds!
> 
> Item was changed:
>   ----- Method: Timespan class>>current (in category 'squeak protocol') -----
>   current
> + 	^ self starting: (DateAndTime now asLocalAt: self defaultOffset)!
> - 	^ self starting: (DateAndTime now offset: self defaultOffset)!
> 
> 


More information about the Squeak-dev mailing list