[squeak-dev] The Trunk: Kernel-bf.995.mcz

commits at source.squeak.org commits at source.squeak.org
Thu Feb 18 23:16:55 UTC 2016


Bert Freudenberg uploaded a new version of Kernel to project The Trunk:
http://source.squeak.org/trunk/Kernel-bf.995.mcz

==================== Summary ====================

Name: Kernel-bf.995
Author: bf
Time: 18 February 2016, 3:16:12.729637 pm
UUID: d871efd5-be20-4ad9-9a1d-c1b24dce73b5
Ancestors: Kernel-bf.994

Add preference to disable automatic timezone adjustment.

=============== Diff against Kernel-bf.994 ===============

Item was changed:
  Magnitude subclass: #DateAndTime
  	instanceVariableNames: 'seconds offset jdn nanos'
+ 	classVariableNames: 'AutomaticTimezone ClockProvider LastClockValue LocalTimeZone NanoOffset'
- 	classVariableNames: 'ClockProvider LastClockValue LocalTimeZone NanoOffset'
  	poolDictionaries: 'ChronologyConstants'
  	category: 'Kernel-Chronology'!
  
  !DateAndTime commentStamp: 'brp 5/13/2003 08:07' prior: 0!
  I represent a point in UTC time as defined by ISO 8601. I have zero duration.
  
  
  My implementation uses three SmallIntegers
   and a Duration:
  jdn		- julian day number.
  seconds	- number of seconds since midnight.
  nanos	- the number of nanoseconds since the second.
  
  offset	- duration from UTC.
  
  The nanosecond attribute is almost always zero but it defined for full ISO compliance and is suitable for timestamping.
  !

Item was added:
+ ----- Method: DateAndTime class>>automaticTimezone (in category 'preferences') -----
+ automaticTimezone
+ 	"Accessor for the system-wide preference"
+ 	
+ 	<preference: 'Automatically set local timezone'
+ 		category: 'general'
+ 		description: 'If enabled, the timezone will automatically be kept in sync with the system''s time (daylight savings changes etc.)'
+ 		type: #Boolean>
+ 	^AutomaticTimezone ifNil: [ true ]!

Item was added:
+ ----- Method: DateAndTime class>>automaticTimezone: (in category 'preferences') -----
+ automaticTimezone: aBoolean
+ 	"Accessor for the system-wide preference"
+ 	
+ 	AutomaticTimezone := aBoolean!

Item was changed:
  ----- Method: DateAndTime class>>now (in category 'ansi protocol') -----
  now
  	| clockAndOffset |
  	clockAndOffset := self clock localMicrosecondClockWithOffset.
+ 	(self automaticTimezone and:
+ 		[self localOffset asSeconds ~= clockAndOffset second])
+ 			ifTrue: [self localOffset: (Duration seconds: clockAndOffset second)].
- 	self localOffset asSeconds ~= clockAndOffset second ifTrue: [
- 		self localOffset: (Duration seconds: clockAndOffset second)].
  	^self now: clockAndOffset first offset: self localOffset!



More information about the Squeak-dev mailing list